반응형
아래와 같은 input.txt가 있다고 하자.
문자열은 보통 c에서 scanf로 받지만 공백이 있는 경우는 까다롭다.
scanf에 더이상 읽을 파일이 없을 경우 -1(EOF : End of File)을 return하기 때문에 txt의 끝은 알 수 있지만,
input은 공백을 기준으로 file 입력을 끊어버린다.
#include <stdio.h>
int main(void)
{
char input[100];
while(scanf("%s", input) != EOF)
{
printf("%s\n", input);
}
return 0;
}
공백을 기준으로 input에 read 되는 것을 알 수 있다.
이러한 점을 방지하기 위해, scanf에 " %[^\n\r]" 옵션을 넣어주면, 공백을 무시하고 한 줄을 입력 받을 수 있다.
#include <stdio.h>
int main(void)
{
char input[100];
while (scanf(" %[^\n\r]", input) != EOF)
{
printf("%s\n", input);
}
return 0;
}
반응형
'개발 > C, C++' 카테고리의 다른 글
C++ ofstream을 이용한 FILE 출력 (0) | 2021.03.18 |
---|---|
에라토스테네스의 체 - 소수 판단 (0) | 2021.03.16 |
소수 판단 함수 (0) | 2021.03.14 |
C, C++ - 정수로된 FILE 입력 (1) | 2021.03.14 |
유일한 수 두개 (0) | 2021.03.01 |
댓글