:는 입력가 아닌 경우 만약 내가 이상 갈과 코드가 C에 입력해야 문 경우 문제가 문
void getInput(void)
{
static size_t _read = 0;
memset(line, 0, _read);
do{
memset(line, 0, _read);
write(STDOUT_FILENO, ">> ", 3);
_read = read(STDIN_FILENO, line, MAXLINE - 1);
if (line[0] == '\n' || line[0] == '\r')
continue;
}while(line[_read - 1] != '\n');
line[_read] = '\0';
}
문제는 경우 라인 "에있다 (라인 [0] == '\를 n '|| line [0] =='\ r ') "여기 디버거에서 추출한 것입니다.
getInput() at main.c:29
29 if (line[0] == '\n' || line[0] == '\r')
1: line[0] = 10 '\n'
(gdb) step
31 }while(line[_read - 1] != '\n');
1: line[0] = 10 '\n'
(gdb) list 29
24 memset(line, 0, _read);
25 do{
26 memset(line, 0, _read);
27 write(STDOUT_FILENO, ">> ", 3);
28 _read = read(STDIN_FILENO, line, MAXLINE - 1);
29 if (line[0] == '\n' || line[0] == '\r')
30 continue;
31 }while(line[_read - 1] != '\n');
32 line[_read] = '\0';
33 }
위에서 볼 수 있듯이 continue 문은 나오지 않지만 while 문은 직선입니다. 나는 계속이 while 진술에 갈 것이라고 생각했지만, 왜 계속해서 계속 진행되지 않는지 이해할 수 없다.
감사
네 문제 덕분 이잖아 보인다 – Daniel