파일 입출력인데.. 파일에 정보가 안들어 갑니다..ㅠ ㅠ
찬솔나라
파일 입출력인데.. 파일에 정보가 안들어 갑니다..ㅠ ㅠ파일 입출력 문제 때문에간단하게 무한루프로 입력을 만들었는데...
한번의 버퍼에서의 정보는 다 들어가지만..
컨트롤+z하고 나서 정보가더 이상 안들어 갑니다;;
왜 안들어 갈까요??+ +;질문 내용 :
#include stdio.h
#include stdlib.h
void in(FILE*);
int main(void) {
char fn[] = basic.txt;
FILE *f;
if((f = fopen(fn,a+)) == NULL) {
exit(1);
}
while(1) {
in(f);
}
fclose(f);
return 0;
}
void in(FILE *f) {
char line[80];
char dd[10];
int n;
fgets(line,80,stdin);
while(!feof(stdin)) {
printf(들어갔따!\n);
sscanf(line,%s %d,dd,&n);
fprintf(f,%s %d\n,dd,n);
fgets(line,80,stdin);
}
}
-
알찬마루
in함수에서 fclose(fp);를 하시는 건 어떨까요?
그리고 메인의 while(1)을 하고 in함수를 호출 뒤에 다시 fopen함수를 a모드로 여세요. -
내꺼하자
귀찮으시겠지만 ... 그럼 한번의 프로그램 실행중에.. 컨트롤Z를 1번을 실행하면 그 이후는 입력을 못받나요? while(1)지우면 한번은 확실히 받겠지만.. 제가 원하는건 컨트롤Z를 연속으로 써서(1번이상) 또 받는 거거 든요;; c언어의 signal과 관련있다고 들었는데....
-
민들레
그러니까, 메인의 while(1)을 지우라고요.
-
행복녀
while(1)과 in(f)는 그냥 계속 입력만 넣어 볼려고 임의로 만들었습니당 ;ㅁ; djm님 말씀대로 while(1)안에 파일열기(fopen)와 닫기(fclose)를 넣어서 실행해 봤는데도 같은 현상이네요;;
계속 입력이 들어갈려면 어케해야 되는지 몰겠네요 ㅠ ㅠ -
노을빛
fclose가 없으면 파일이 저장이 되지 않기 때문에 어떻게든 거기에 닿게 해야 합니다.
-
갤쓰리
while(1)을 빠져나갈 조건문이 없군요.
컨트롤 Z를 누르면 어차피 다시 in함수를 빠져나와 메인함수의 while(1)문을 돌게 되니
영원히 안 끝나지요.
in(f);는 한번만 실행시켜도 됩니다.