1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > C语言之文件读写探究(二):fputc fgetc feof(一次读写一个字符(文本操作))

C语言之文件读写探究(二):fputc fgetc feof(一次读写一个字符(文本操作))

时间:2020-05-24 19:46:01

相关推荐

C语言之文件读写探究(二):fputc fgetc feof(一次读写一个字符(文本操作))

相关博文:C语言之文件读写探究(一):fopen、fclose(文件的打开和关闭)

相关博文:C语言之文件读写探究(二):fputc、fgetc、feof(一次读写一个字符(文本操作))

相关博文:C语言之文件读写探究(三):fputs、fgets、feof(一次读写一行字符(文本操作))

相关博文:C语言之文件读写探究(四):fwrite、fread(一次读写一块数据(二进制操作))

相关博文:C语言之文件读写探究(五):rewind、ftell、fseek(文件指针偏移)

相关博文:C语言之文件读写探究(六):fscanf、fprintf(格式化读写文件)

相关博文:C语言之文件读写探究(七):随机读写文件

fputc

例1:

附例1代码:

//小问学编程#include<stdio.h>int main( ){FILE* fp=fopen("hello.txt","w");if(fp==NULL){printf("open error\n");return -1;}for(char ch='a';ch<='z';ch++){printf("%3c",fputc(ch,fp));}fclose(fp);return 0;}

fgetc

读取字符,重点是判断,结束条件是什么?通常的做法是依据返回值。

例2:

附例2代码:

//小问学编程#include<stdio.h>int main(){FILE* fp=fopen("hello.txt","r");if(fp==NULL){printf("open error\n");return -1;}char ch;while((ch=fgetc(fp))!=EOF)//优先级,关系>赋值printf("%c",ch);fclose(fp);return 0;}

feof

feof这个函数,是去读标志位判断文件是否结束的。即在读到文件结尾的时候再去读一次,标志位才会置位,此时再来判断文件处理结束状态,文件到结尾。如果用于打印,则会出现多打一次的现象。

例3:

附例3代码:

//小问学编程#include<stdio.h>int main(){FILE* fp=fopen("hello.txt","w+");if(fp==NULL){printf("open error\n");return -1;}for(char ch='a';ch<='z';ch++){fputc(ch,fp);}rewind(fp);char ch;while((ch=fgetc(fp))&&!feof(fp))//正确的姿势{printf("%c",ch);}fclose(fp);return 0;}

下面举一个例子,让程序打开一个名为hello.txt的文件,然后创建一个new.txt文件,读取前一个文件的内容并写入后一个文件中。

例4

附例4代码:

//小问学编程#include<stdio.h>#include<stdlib.h>int main(){FILE* fp1;FILE* fp2;int ch;if((fp1=fopen("hello.txt","r"))==NULL){printf("打开文件失败!\n");exit(-1);}if((fp2=fopen("new.txt","w"))==NULL){printf("打开文件失败!\n");exit(-1);}while((ch=fgetc(fp1))!=EOF){fputc(ch,fp2);}fclose(fp1);fclose(fp2);return 0;}

实现linux中cp命令的功能

附上例代码:

//小问学编程#include<stdio.h>#include<stdlib.h>int main(int argc,char* argv[]){if(argc<3){printf("uage:%s src dest\n",argv[0]);return 0;}FILE* fp=fopen(argv[1],"r");if(fp==NULL){return -1;}FILE* fp2=fopen(argv[2],"w");if(fp2==NULL){fclose(fp);return -1;}char ch;while((ch=fgetc(fp))!=EOF){fputc(ch,fp2);ch=fgetc(fp);}fclose(fp);fclose(fp2);}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。