누군가 다음 코드가 첫 번째 줄만 인쇄하는 이유를 설명 할 수 있습니까? 나는 for-loop를 수동으로 한장의 종이에 썼다. 나는 그것이 3 줄 씩 증가 할 것이라고 생각했지만, 나의 논리는 어딘가 떨어져 있어야만한다.이 프로그램은 첫 번째 줄만 인쇄하는 이유는 무엇입니까?
#include <cstdlib>
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <iostream>
using namespace std;
#define BUFFSIZE 1024
int main(int argc, char** argv) {
char buf[BUFFSIZE];
int numRead = 0;
int newlinePosition = -1;
numRead = read(fd, buf, BUFFSIZE);
for(int i = 0; i < numRead && newlinePosition < 3; i++) {
if(buf[i] == '\n') {
newlinePosition = i;
if(i + 1 < numRead) {
newlinePosition += 1;
}
}
}
if(newlinePosition < 0) {
newlinePosition = numRead;
}
write(STDOUT_FILENO, buf, newlinePosition);
전체 코드 – PeMaCN
좋아요, 다른 모든 것을 포함하도록 업데이트했습니다. – HelpMe
아직 누락 된 부분이 있습니다. 'fd'는 무엇입니까? – ShadowMitia