如何使用C中的\ n和fprintf将文本写入文件

时间:2015-02-19 22:11:21

标签: c string printf stringbuilder

我是C的新手,在字符串构建的概念及其工作原理方面我正在努力奋斗。基本上我试图将报告输出到带有多个“/ n”新行的.txt文档。 这是我的字符串,名为s:

char buf[256];
int s = sprintf(buf, "Mean %f", a);
s += sprintf(buf+s, " \nMode %i", b);
s += sprintf(buf+s, " \nMedian  %f", c);
s += sprintf(buf+s, " \nStandard Deviation  %f", d);

如果我printf("%s\n", buf);要安装,它可以正常工作。 但是,我正在尝试将其写入包含新行的文件中。目前,当我这样做时:

FILE *file = fopen(filename, mode);
fprintf(file, input);

它不打印新行,只打印一个长字符串。我做错了什么?

我已经研究过,发现唯一的解决办法是将每一行直接打印到文件中,即

fprintf(file, "mean is %f \n", a);
fprintf(file, "mode is %i \n", b);

依旧......我想避免这种情况。有什么帮助吗?

1 个答案:

答案 0 :(得分:4)

如果您使用Windows文本编辑器检查文件内容,则需要在行尾添加"\r\n"

正如pmg评论:如果您使用"w"模式打开文件,这应该会自动发生,如果在Windows中以这种方式实现,那么这是一个更好的解决方案,因为该程序将自动在另一个操作系统中正常工作。

这对我来说似乎很烦人,因为这些文件无法跨操作系统传输。