코드 :ANSI C - stdin을 단어 단위로 읽는 방법?
#include <stdio.h>
int main(void) {
char i[50];
while(scanf("%s ", i)){
printf("You've written: %s \n", i);
}
printf("you have finished writing\n");
return 0;
}
한 가지 문제는 그것이 예상대로 코드가하지 않는다는 것입니다. 난에 입력 한 경우 :
그것은 출력abc def ghi.
을 것입니다 :
You've written: abc
You've written: def
내가 그것을 어떻게 해결할 수 있습니까? 목표는 "ENTER"또는 "."에 도달 할 때까지 모든 단어를 stdin에서 읽는 것입니다. (점).
무엇 쓰기에 대해 : 당신이
.
을 찾는 독서 중지하려면, 당신은 다음과 같은 입력 문자열에서 찾기 위해 몇 가지 논리를 추가해야합니다 'scanf ("% s")'를 한 번 실행 한 다음 루프에서'scanf ("% s")'를 호출합니까? –
이 문제를 제외하고는,'scanf ("% 49s", i)'를 사용하여 버퍼 오버런을 막는 습관을 갖도록하십시오. '케이? – dmckee
감사하지만 문제를 해결하지 못했습니다. 문제는 while 루프가 마지막 문자 그룹에 도달하기 전에 끝나는 것이며 이것이 수행해야하는 작업이 아닙니다. –