파일 읽고 출력 관련
애교
질문 제목 : 파일입출력관련 질문입니당 ㅜㅠ
질문 요약 :파일입출력관련 질문입니당 ㅜㅠ
질문 내용 :
파일 random.txt 에는 난수 10개를써주는 것이제대로 나오는데용 ㅜㅠ
파일 output.txt에서는 이상한 한자만 나와요..
output.txt에는 random.txt.파일과 똑같이 써준 후에 합도 추가로 입력해주어야하는데요~!
random.txt 에 내용을 output.txt로 복사해올때 잘못된거 같은데 어떻게 바꿔야할지좀 가르쳐주세요!
+ 문제에 파일에서 읽을때 fscanf를 사용하라고 되어있는데 이건 어디서 사용해야하나요?
fscanf가 이 문제에서 필요한가요?????
↓제가 짜 본 코드입니다!
#includestdio.h
#includestdlib.h
#includetime.h
int main(void)
{
int state, state2;//종료확인변수
int i;
char num[9] = {0};
int total = 0;
FILE * fp = fopen(random.txt, w);
FILE * fp2;
if (fp == NULL) //fp파일 열림확인
{
printf(file open error!\n);
return 1;
}
srand(time(NULL));
for (i = 0; i 10; i++)
{
num[i] = rand() % 100;
printf(%5d, num[i]);
fprintf(fp, %d\n, num[i]);
total += num[i];
}
printf(\n합은 %d\n, total);
state = fclose(fp);
if (state != 0)
{
printf(file close error!\n);
return 1;
}//fp파일닫고 확인
fp2 = fopen(output.txt, r+t);//fp2파일열기
if (fp2 == NULL) //fp2파일 열림확인
{
printf(file open error!\n);
return 1;
}
fgets(num, sizeof(num), fp);
while (!feof(fp))
{
fputs(num, fp2);
fgets(num, sizeof(num), fp);
}
fprintf(fp2, 합은 %d\n, total);
if (feof(fp) != 0)
puts(파일복사완료);
else
puts(파일복사실패);
state2 = fclose(fp2);//fp파일닫기
if (state2 != 0)
{
printf(file close error!\n);
return 1;
}
return 0;
}
-
둘빛
output.txt에 쓰려는 것들은 fp가 아니고 fp2에 써야 됩니다.
-
한누리
fp 닫는 것을 아래로 옮겼더니 이번엔 random.txt파일에 맨 아랫줄에도 한자들이 나오고 output.txt에도 한자들만 나와요ㅜㅠ
-
주리
fp 를 닫고 난 후에도 fp로 조작을 하시네요.