字符的输入输出(文件操作)

来源:互联网 发布:圣火明尊坐骑进阶数据 编辑:程序博客网 时间:2024/05/21 09:25

1,fgetc()的返回值是一个字符。在执行该函数读取字符遇到文件结束符,则返回文件结束标志EOF,EOF是定义在头文件stdio.h中,值为-1;EOF不是可输出的字符,不能够显示;只可以顺序的读取文件内容。
2,fputc()一般的调用形式为fputc(ch,fp);ch是要写入的字符,fp是文件的指针;如果写入成功,返回值就为该字符,否则返回值就是EOF;

(1)打开一个文件:

#include<stdio.h>int main(){FILE *fp;fp=fopen("hello.txt","w");//不加文件的路径,则文件在当前工程的目录下/*"w"以写的方式打开文件,当不存在这个文件的时候,则新建一个文件。  如果以"r"方式打开文件,则表示,该文件应该已经存在,不能使用它打开一个并不存在的文件。*/if(fp==NULL){printf("打开文件失败!");//exit(0);}fclose(fp);return 0;}

PS:exit(1)表示发生错误后退出程序,   exit(0)表示正常退出。


(2)打开一个文件并且在屏幕上显示:

#include<stdio.h>int main(){FILE *fp;fp=fopen("hello.txt","rb+");if(fp==NULL){printf("打开文件失败!\n");}//将磁盘文件读出,并在屏幕上显示char ch=fgetc(fp);while(ch!=EOF)//while(!feof(fp)) 判断是否到达文件尾部{//{putchar(ch);//ch=fgetc(fp);  先读出一个字符再进入循环,读一次文件指针后移一个字符,结束时指向EOF。ch=fgetc(fp);//putchar(ch);}//}fclose(fp);return 0;}
在文本文件中输入:
运行结果:
可以看到,文本中的内容在控制台上得到了显示。

(3)在控制台输入数据,保存到文件中:
#include<stdio.h>int main(){FILE *fp;char ch,ch1;fp=fopen("world.txt","w");if(fp==NULL)return 0;printf("输入文件内容:\n");while((ch=getchar())!='#'){fputc(ch,fp);//向文件中写入一个字符}fclose(fp);//将文件内容输出到屏幕FILE *fp1;fp1=fopen("world.txt","r");//只读方式打开if(fp1==NULL)return 0;printf("打印输出\n");ch1=fgetc(fp1);while(ch1!=EOF){putchar(ch1);ch1=fgetc(fp1);}fclose(fp1);return 0;}
输入以下的内容:
打开world.txt,文本显示了文件内容:

(4)将一个文件中的内容复制到拧一个文件中:
#include<stdio.h>int main(){FILE *in,*out;char ch,infile[25],outfile[25];printf("输入要被拷贝的文件名\n");scanf("%s",infile);printf("输入要拷贝的文件名\n");scanf("%s",outfile);in=fopen(infile,"r");if(infile==NULL)return 0;out=fopen(outfile,"w");if(outfile==NULL)return 0;while(!feof(in)){ch=fgetc(in);//读出fputc(ch,out);//写入}fclose(in);fclose(out);return 0;}
打开两个文本文档,发现两个文本的内容是不一样的:
在控制台按照相应的指示输入:
再次打开两个文本,原来的world.txt文件中的内容被清空,hello.txt文件中的内容被复制到了world.txt中。



0 0
原创粉丝点击