배열로 입력받기 질문ㅠㅠ
글쓴이: jinwoo4130 / 작성시간: 수, 2015/04/01 - 12:01오후
정수 배열에 입력받은 후 출력
int main()
{
int arr[5];
int i;
for(i=0; i<5; i++)
{
printf("input number :");
scanf("%d", &arr[i]);
}
for(i=0; i<5; i++)
printf("%d",arr[i]);
return 0;}
문자 배열에 입력받은 후 출력
#include
int main()
{
char arr[5];
int i;
for(i=0; i<5; i++)
{
printf("input charater :");
scanf("%c", &arr[i]);
}
for(i=0; i<5; i++)
printf("%c",arr[i]);
return 0;}
정수가 되서 문자도 입력받을려고 수정해 봤는데
첨부파일처럼 만되고 제대로 안되요 하...
File attachments:
첨부 | 파일 크기 |
---|---|
bb.PNG | 3.5 KB |
Forums:
음...
적당한 넷 강좌가 있는지 찾아봤는데 없네요.
일단 scanf("%c", &arr[i]); 다음줄에 아래와 같이 입력하십시오.
fflush(stdin);
ㄴ표준입력 버퍼를 비워준다는 의미입니다.
님이 a를 입력한후에 엔터를 치면 표준입력버퍼(stdin)에는 a와 개행문자가 함께 들어가게 됩니다.
때문에 arr[0]에는 a가 들어가게 되구요.
다시 scanf문을 만나면 입력을 받게 되는데요.
표준입력버퍼에 개행문자가 이미 들어가 있는 상태이지요?
그러니 arr[1]에는 개행문자가 들어가게 되고, 다시 printf를 만나게 되니 오류가 발생한 것 처럼 보이는 것입니다.
fflush 함수를 사용하는 방법도
fflush 함수를 사용하는 방법도 있지만
scanf(" %c" ~) 처럼 앞에 공백을 주게되면 개행문자들을 무시할 수 있습니다.
댓글 달기