【C语言】向文件写入东西不能写入换行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【C语言】向文件写入东西不能写入换行相关的知识,希望对你有一定的参考价值。
我的程序if((fp=fopen("xinxi.txt","ab"))==NULL) //文件为空则退出
printf("cannot open this fifl\n");
exit(0);
fprintf(fp,"%s,%s,%f",clients[number].xingming,clients[number].mima,clients[number].zongjine);
在 fprintf那加\n在txt文件里就看到一个乱码而不是换行
球高手帮忙
设定打开文件的指针为fp,那么向文件中写入换行可以用如下几种办法:
1 通过fputc函数:
fputc函数可以写入一个字符,所以可以通过
fputc(\'\\n\', fp);
的方式写入一个换行符。
2 通过fprintf函数:
和通过打印函数printf输出一个换行类似,可以
fprintf(fp, "\\n");
3 通过fputs函数:
fputs功能是写入一行字符串并换行。这里只需要它的换行功能,所以写入一个长度为0的字符串就可以了,注意不是空串NULL。
fputs("", fp);
4 通过fwrite函数:
fwrite是写一块数据的,用来写一个字符理论上可行,不过是大材小用了。
char c = \'\\n\';
fwrite(&c, 1,1,fp);
以上四种方法都可以向文件写入换行符。 参考技术A 1、你的程序是错误的,所以不能写入换行。
原因如下:用"ab" 打开是二进制文件,要用 fwrite 写。
2、修改建议:写文本文的话用 "w" 就可以了。fprintf(fp,"%s,%s,%f\n",....)。用 \n 换行。 参考技术B 用"ab" 打开是二进制文件。要用 fwrite 写。
写文本文件 用 "w" 就可以了。
fprintf(fp,"%s,%s,%f\n",....
用 \n 换行本回答被提问者采纳 参考技术C 如果你输出文件是文本的建议fopen使用参数"at",那么函数会帮你自动补完换行符。
如果使用"ab"说明是Binary,那么Windows的换行必须是0x0D 0x0A 组成"\r\n" 参考技术D 试试\r\n
用c语言创建一个txt文件,并且写入数据
用c语言创建一个txt文件,并且写入一段文字,文字中可换行,并能够给该文字添加代码中的变量。比如下面一段文字:
yes you are right !
y=4+x
上面两行文字写入创建的txt文件里,注意是换行的,并且x是代码中的一个变量,它的值为6,,最终生成的txt文件里内容为:
yes you are right !
y=4+5
错了,最终生成的内容是
yes you are right !
y=4+6
#include <stdio.h>
int main()
//下面是写数据,将数字0~9写入到data.txt文件中
FILE *fpWrite=fopen("data.txt","w");
if(fpWrite==NULL)
return 0;
for(int i=0;i<10;i++)
fprintf(fpWrite,"%d ",i);
fclose(fpWrite);
//下面是读数据,将读到的数据存到数组a[10]中,并且打印到控制台上
int a[10]=0;
FILE *fpRead=fopen("data.txt","r");
if(fpRead==NULL)
return 0;
for(int i=0;i<10;i++)
fscanf(fpRead,"%d ",&a[i]);
printf("%d ",a[i]);
getchar();//等待
return 1;
扩展资料:
c语言最常用的文件使用方式及其含义
1、"r".为读而打开文本文件.(不存在则出错)
2、"rb".为读而打开二进制文件.
3、"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)
4、"wb".为写而打开二进制文件.
5、"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建;反之,在原文件后追加)
6、"ab".为在文件后面添加数据而打开一个二进制文件.
7、"r+".为读和写而打开文本文件.(读时,从头开始;在写数据时,新数据只覆盖所占的空间,其后不变)
8、"rb+".为读和写而打开二进制文件.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
9、"w+".首先建立一个新文件,进行写操作,随后可以从头开始读.(若文件存在,原内容将全部消失)
10、"wb+".功能与"w+"同.只是在随后的读写时,可以由位置函数设置读和写的起始位置.
11、"a+".功能与"a"相同;只是在文件尾部添加新的数据后,可以从头开始读.
12、"ab+".功能与"a+"相同;只是在文件尾部添加新数据之后,可以由位置函数设置开始读的起始位置.
参考链接来源:百度百科-C语言
void main()
int x=6;
FILE *fp=fopen("text.txt","w");
fprintf(fp,"yes you are right !\ny=4+%d",x);
fclose(fp);
我上图了 百度最近上传图至少几个小时候才能显示
或者永远不显示 我鄙视一下百度追问
忘了一个问题,怎么把生成的txt文件创建到指定路径,麻烦了,我给你加分
追答FILE *fp=fopen("text.txt","w"); fopen的第一个参数可以是路径 例如 注意是双斜杠
FILE *fp=fopen("d:\\123\\text.txt","w");
using namespace std;
void main()
int x = 6;
FILE* fout = NULL;
fout = fopen("out.txt","a+");
if (!fout)
printf("open file error !\n");
return;
string str = "yes you are rigth !\n";
fwrite(str.c_str(),str.length(),sizeof(char),fout);
char buf[56];
memset(buf,0,56);
sprintf(buf,"y=4+%d\n",x);
str = string(buf);
fwrite(str.c_str(),str.length(),sizeof(char),fout);
fclose(fout);
参考技术C #include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
FILE *f;
char path[100]=;
printf("请输入保存的路径:");
scanf("%s",path);
int n=6;
f=fopen(path,"w+");
fprintf(f,"yes you are right \n");
fprintf(f,"y=4+%d\n",n);
fclose(f);
printf("已经保存,快去看吧");
system("pause");
return 0;
以上是关于【C语言】向文件写入东西不能写入换行的主要内容,如果未能解决你的问题,请参考以下文章