| puRin |
fflush() 함수를 알면 쉬워요. i가 2씩 증가하는 이유가 있죠. 밑에 보시면 압니다.
#include <stdio.h>
int main(void)
{
char array[100] = {0, };
int N;
int i;
scanf ("%d", &N);
fflush(stdin); //요거 없으면 입력버퍼에 '\n' 개행문자가 그대로 남습니다. fflush로 지워주세요.
for (i = 0; i < N; i++)
{
scanf ("%c", &array[i]); //&붙여주시구요.
fflush(stdin);
/*이거 없으면 i가 2번 증가하죠?? 왜냐하면 scanf는 딱 우리가 입력한 정수만 받아들이는 데, 그 후에 우리가 Enter key를 누르면 '\n' 요게 입력버퍼에 남아요. 그러면 다음 for문 때, scanf가 입력버퍼에 남아있는 '\n'를 가져가요. 그래서 우리가 다음 문자를 입력하기도 전에, 먼저 scanf는 '\n' 받고, 그 다음 줄로 내려갑니다. 그래서 printf ("i = %d\n", i); 이게 두번 실행되는 겁니다.*/
printf ("i = %d\n", i); //
}
printf("%s\n", array);
return 0;
}
예를 들면, N을 10으로 잡아봅시다.
<<출력화면>>
10
a
i = 0
b
i = 1
c
i = 2
d
i = 3
e
i = 4
f
i = 5
g
i = 6
h
i = 7
i
i = 8
j
i = 9
abcdefghij
어떄요, 참 쉽죠...?-_ -ㅋㅋ |
2011/02/11 |
|