scanf() 에서 공백이 포함되어 있는 형태로 입력받으려면??
늘다
#include stdio.h
#include string.h
#include tchar.h
#include windows.h
#include locale.h
#include ctype.h
#include iso646.h
#include limits.h
#include float.h
#define LINE_FEED 10
INT _tmain( INT argm, TCHAR * argv[] )
{
INT num1, num2, num3;
_wsetlocale( LC_ALL, _T(korean) );
_fputts( _T(입력: ), stdout );
_tscanf( _T(%d %d %d ), &num1, &num2, &num3 );
_tprintf( _T(%d %d %d \n), num1, num2, num3 );
_puttchar( LINE_FEED );
return 0;
}
----------------------------------------------------------------
위에 빨간색 보시면 오른쪽 끝에 공백이 있잖아요? 만일 그 형식대로 숫자를 읽고 싶으면 어떻게 해야 하나요? 아무리 띄어쓰기 해봐도 안 읽어지더라고요. 그게 scanf 함수가 원래 %d 포맷 지정자에서는 공백을 무시하기는 하지만, 4개의 숫자를 입력하면 성공합니다.
-
봉봉
fgets후 atoi, atol, atof 등등.. 하면 됩니다.
-
시윤
제가 생각이 짧았나 보군요
-
늘솜
fgets() 로 숫자를 4개 입력 받는다라..... ㅡ,.ㅡ;
딴지 한번 걸어 보면 그렇게 문자열로 받아서 띄어쓰기 부분들 다 토큰으로 걸러내고 걸러낸 문자열을 하나씩 숫자로 변환해야 하는데....
만약 실수형태나 음수형태까지 같이 입력받는다면 ㅡ,.ㅡ; ㅋㅋ 참~~ 재밌는 작업이겠네요 -
망고
scanf()으로는 불가능한가요? fgets()은 정수형태로는 입력이 불가능한 것 아닌가요?
-
슬아s
fgets 함수를 이용해 보세요