如何用文本档编辑c语言,c语言读写word文档

int a; char b,c[100]; int main(){ FILE * fp1 = fopen("input.txt", "r");//打开输入文件 FILE * fp2 = fopen("output.txt", "w");//打开输出文件 if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出 puts("不能打开文件!"); rturn 0; } fscanf(fp1,"%d",&a);//从输入文件读取一个整数 b=fgetc(fp1);//从输入文件读取一个字符 fgets(c,100,fp1);//从输入文件读取一行字符串 printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数 fputs(c,fp2);//向输出文件写入一行字符串 fputc(b,fp2);//向输出文件写入一个字符 fprintf(fp2,"%d",a);//向输出文件写入一个整数 fclose(fp1);//关闭输入文件 fclose(fp2);//关闭输出文件,相当于保存 return 0; }。

c文件的写入和读取-C语言中怎样读取文件数据并对数据排序再重新写

你好,很高兴为您解答。

我来回答吧: 首先是两个输入文件: 一个文本文件:scoret。txt 一个二进制文件:scoreb。

txt 文本文件scoret。txt我们可以直接编辑(按要求编辑五个学生的姓名和成绩),而二进制文件不易编辑。

我们先写一个代码,实再将scoret。txt文件转成二进制文件scoreb。

txt #include #include #include struct stu { char name[30]; int grade; }; int main() { int i,n; struct stu s[10]; FILE *fpIt,*fpIb; /*输入*/ FILE *fpOt,*fpOb; /*输出*/ fpIt=fopen("scoret。 txt","r"); fpIb=fopen("scoreb。

txt","wb"); if (fpIt==NULL || fpIb==NULL) { printf("File Open Error:\npress any key to exit:\n"); getch(); return -1; } i=0; while (!feof(fpIt)) { fgets(s[i]。 name,30,fpIt); /*有空格只能这样输入*/ fscanf(fpIt,"%d\n",&s[i]。

grade); /*文本输入*/ printf("i=%d,name=%s\t grade=%d\n",i,s[i]。 name,s[i]。

grade); getch(); fwrite(&s[i],sizeof(struct stu),1,fpIb); i++; } n=i; printf("n=%d\n",n); fclose(fpIt); fclose(fpIb); getch(); return 0; } =============== 上面的代码在TC或VC下编辑运行,就可以生成scoreb。 txt文件。

这时scoreb。txt的学生信息与scoret。

txt是一样的。 接着就要修改一下scoret。

txt文件的内容,重新编辑5个学生的信息给scoreb。txt 这样使得scoret。

txt与scoreb。txt分别各有五个学生的信息。

当然你如果有原始文件的话,上面都是浮云。 下面是你这个问题的重点: #include #include #include #include struct stu { char name[30]; int grade; }; int main() { int i,j,n; struct stu s[10],temp; FILE *fpIt,*fpIb; /*输入*/ FILE *fpOt,*fpOb; /*输出*/ fpIt=fopen("scoret。

txt","r"); fpIb=fopen("scoreb。txt","rb"); fpOt=fopen("scoreOt。

txt","w"); fpOb=fopen("scoreOb。txt","wb"); if (fpIt==NULL || fpIb==NULL || fpOt==NULL || fpOb==NULL) { printf("File Open Error:\npress any key to exit:\n"); getch(); return -1; } n=0; while (!feof(fpIt)) { fgets(s[n]。

name,30,fpIt); /*有空格只能这样输入*/ fscanf(fpIt,"%d\n",&s[n]。grade); /*文本输入*/ printf("n=%d,name=%s\t grade=%d\n",n,s[n]。

name,s[n]。grade); getch(); n++; } fclose(fpIt); printf("===========\n"); while (!feof(fpIb) && n name,s[n]。

grade); getch(); n++; } printf("n=%d\n",n); fclose(fpIb); /*排序*/ for (i=0;i grade grade,s[i]。name); /*写文件*/ for (i=0;i 当然二进制文件你如果用记事本打开的话,一般是乱码。

你可以弄一个UltraEdit之类的文本编辑器,查看其二进制代码。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值