【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文件里就看到一个乱码而不是换行
球高手帮忙

C语言写文件是可以写入换行的,不过需要使用通配符\'\\n\'.
设定打开文件的指针为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语言

参考技术A #include "stdio.h"
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");

本回答被提问者和网友采纳
参考技术B #include <iostream>
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语言】向文件写入东西不能写入换行的主要内容,如果未能解决你的问题,请参考以下文章

c语言中怎样在文件写入时换行?

关于Java中向文件写入数据的问题

在R语言 中如何把list对象逐行写入csv文件中

Shell 脚本写入文件换行的问题

关于c++文件流读入和写入的问题

利用VBA向excel表格中写入数据后,再次运行程序的话写入速度会非常慢