C语言程序运行结果保存为TXT格式的问题

C语言程序运行结果保存为TXT格式的问题,第1张

改成这样

main()

{

float l,i,a

printf("L=")

scanf("%f",&i)

l=i

FILE *fs

fs=fopen("cc.txt","w")

while(l<=20)

{

a=6*l

/*printf("L=%f\t %f\n",l,a)*/

fprintf(fs,"L=%f\t %f\n",l,a)

l=l+1

}

fclose(fs)

}

原因是因为你在循环中打开文件,不停的在从第0个位置写,再关闭

如果想放在循环中,你用到fseek(文件类型指针fp,位移量,起始点)接口,放在/*printf("L=%f\t %f\n",l,a)*/ 后面

起始点 对应的数字 代表的文件位置

SEEK_SET 0文件开头

SEEK_CUR 1文件当前位置

SEEK_END 2文件末尾

例如:

fseek(fp,50L,0);或fseek(fp,50L,SEEK_SET)

在C语言中,文件有多种读写方式,可以一个字符一个字符地读取,也可以读取一整行,还可以读取若干个字节。文件的读写位置也非常灵活,可以从文件开头读取,也可以从中间位置读取。

在C语言中,二进制方式很简单,读文件时,会原封不动的读出文件的全部内容,写的时候,也是把内存缓冲区的内容原封不动的写到文件中。

而对文本文件的处理就不一样了。Windows 和 DOS 下的文本文件以CRLF(0X0D 0X0A)作为换行符,而C语言本身以LF(0X0A)作为换行符,所以以文本方式写入数据时,会将LF(0X0A)替换为CRLF(0X0D 0X0A),而读取数据时又会替换回来。

CR(0X0D)表示回车符,也就是 '\r';CL(0X0A)表示换行符,也就是 '\n'。在Linux和其他一些系统中,文本文件的换行符就是LF(0X0A),与C语言的换行符一样。所以也就没有了文本方式和二进制方式的区分,使不使用'b'标志都是一样的。

扩展资料

C语言中文件的读取和写入

在C语言中写文件

//获取文件指针FILE *pFile = fopen("1.txt", //打开文件的名称

"w")// 文件打开方式 如果原来有内容也会销毁//向文件写数据fwrite ("hello", //要输入的文字

//文字每一项的大小 以为这里是字符型的 就设置为1 如果是汉字就设置为4

strlog("hello"), //单元个数 我们也可以直接写5

pFile //我们刚刚获得到的地址         )//fclose(pFile)//告诉系统我们文件写完了数据更新,但是我们要要重新打开才能在写fflush(pFile)//数据刷新 数据立即更新


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11483737.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存