C 언어 에서 fgets 와 fscanf 의 차이 에 대한 상세 한 설명
1.작용 상의 대략적인 차이 점:
①fgets: (fgets , , \0, )
②fscanf: (fscanf , \0, )
2.예 를 들 어 a.txt 파일 의 내용 을 b.txt 로 복사 합 니 다.a.txt 의 내용(첫 줄 에'사랑 해 샤 오 백'과'농담'사이 에 빈 칸 이 있 고 모든 줄 의 마지막 에 차 가 돌아 갑 니 다):
1.fgets 를 사용 하여 a.txt 파일 을 읽 고 b.txt 에 기록 하 는 프로그램 세 션:
FILE *f1 = fopen("a.txt", "r");// a.txt,
FILE *f2 = fopen("b.txt", "w");// b.txt,
if (f1 == NULL)// ,
{
return 0;
}
char buf[1024] = { 0 };//
while (!feof(f1))
{
memset(buf, 0, sizeof(buf));//
fgets(buf, sizeof(buf), f1);// (fgets , , \0, )
fputs(buf, f2);
}
fclose(f1);//
fclose(f2);//
실행 결과:
2.fscanf 를 사용 하여 a.txt 파일 을 읽 고 b.txt 에 기록 하 는 프로그램 세 션:
FILE *f1 = fopen("a.txt", "r");// a.txt
FILE *f2 = fopen("b.txt", "w");// b.txt,
if (f1 == NULL)// ,
{
return 0;
}
char buf[1024] = { 0 };//
while (!feof(f1))
{
memset(buf, 0, sizeof(buf));//
fscanf(f1, "%s", buf);// (fscanf , \0, )
fputs(buf, f2);
}
fclose(f1);//
fclose(f2);//
실행 결과:
결론
1、fgets “ ” , “ ” , (char *buf[]) "\0" 。
2、fscanf “ ” “ ”, '\0' (char *buf[]), 。
궁금 한 점 이 있 으 시 면 메 시 지 를 남기 거나 본 사이트 의 커 뮤 니 티 에 가서 토론 을 교류 하 세 요.읽 어 주 셔 서 감사합니다. 도움 이 되 셨 으 면 좋 겠 습 니 다.본 사이트 에 대한 지지 에 감 사 드 립 니 다!