我有一个小程序对“参数”文件内的5行数据进行读取,然后输出的“输出”文件中,以下程序能够完成此目的,但我现在想在评断的下一行的数字1变为空格,也就是什么都没有,只保留空行,下边的程序就完成不了了,请问,我该如何做,能原样输出“参数”中的空格行等内容?
参数txt文件入了:
个数
330
评断
1
成功
现改为:
个数
330
评断
成功
#include<stdio.h>
int main()
{int e=0;
char pjk[80]={0},pj[80]={0},fk[80]={0},dd[80]={0};
FILE *fc,*fp;
fc=fopen("参数.txt","r");
fp=fopen("输出.txt","w");
fscanf(fc,"%s",dd);
fscanf(fc,"%d",&e);
fscanf(fc,"%s",pjk);
fscanf(fc,"%s",pj);
fscanf(fc,"%s",fk);
fprintf(fp,"%s\n",dd);
fprintf(fp,"%d\n",e);
fprintf(fp,"%s\n",pjk);
fprintf(fp,"%s\n",pj);
fprintf(fp,"%s\n",fk);
fclose(fc);
fclose(fp);
}
您好,用您的程序可以实现我的目的,但多数有点高深,能多做点解释吗,还有,最希望您能在我的基础上做些改动就好,因为我这程序很大,动多了,很复杂,谢谢
追答你的程序我尽可能少的改动,我改动的只是从文件中读取文件到变量中的这部分。你原来的方式是用C语言自带的fscanf实现,这个函数和scanf一样,有弱点。
我的思想是这样的。
首先得到文件的大小,根绝文件大小申请一块内存空间,将整个文件一次性读进来,这样就得到了一个包含全部内容的大字符串。
然后将每行的回车符和换行符改成字符串结束符。同时记下每一行的开始位置。这样一个长字符串就被按行断成了多个子字符串。
然后按行将内容复制到你之前定义的变量中。如果是字符串类型的,直接拷贝内容,如果是数值类型的,调用函数转换下。别的就没改了。
嗯,您的思想我了解了,谢谢您