파일에 문자열 입력에 대한 질문입니다~
풋내
질문 제목 : 파일에 문자열 입력에 대한 질문입니다~파일에 문자열 입력하는 코딩을 했는데 실행시 오류가 나네요.질문 내용 :
#include stdio.h
int main (void)
{
int state;
char sub;
file* file = fopen(test.txt, wt);
if(file==null){
printf(file open error!\n);
return 1;
}
printf(과목명: );
scanf(%c, &sub);
fprintf(file, %c\n, sub);
state=fclose(file);
if(state!=0){
printf(file close error!\n);
return 1;
}
return 0;
}
==============================================
#include stdio.h
int main (void)
{
int state;
char sub;
file* file = fopen(test.txt, wt);
if(file==null){
printf(file open error!\n);
return 1;
}
printf(과목명: );
scanf(%s, &sub);
fprintf(file, %s\n, sub);
state=fclose(file);
if(state!=0){
printf(file close error!\n);
return 1;
}
return 0;
}
=================================================
위와 아래 코딩의 차이는 scanf와 fprinft의 인자 데이터형이 %c 와 %s 로 다르다는 것입니다.
위엣 코딩에서는 1학년이라고 입력하면 test.txt 파일에 1이라고 한 글자만 저장됩니다. (당연하겠죠?)
그런데 아랫 고딩에서는 1학년이라고 입력하면 1학년 이라고 문자열이 저장될 것을 기대 했는데 입력과 동시에 파일에 오류가 있다며 프로그램이 강제 종료 되네요.
이유가 무엇인지 고수님들의 답변을 기다립니다~
-
착히
아~ 그런 거군요~ 감사합니다 ^^
-
다올
char sub[충분히크게]; // scanf로 입력받을 문자열을 모두 포함할 수 있도록 충분히 큰 정수를 사용