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

标签 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);

等等....我想避免这种情况。有帮助吗?

最佳答案

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

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

这对我来说仍然很烦人,因为文件不能跨操作系统传输。

关于c - 如何在 C 中使用\n 和 fprintf 将文本写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28618008/

相关文章:

c - 基于(堆栈/注册)的虚拟机如何处理不同的数据类型

string - 打印(f“... :")-statement too long - break it into multiple lines without messing up the format

c - 如何编辑字符串(在 C 结构中)

c++ - Arduino snprintf 在使用 float 时返回一个包含问号的字符串

scanf 中的字符输入 ("%d", &value)

c++ - 结合 CMake option() 与 add_definitions()

c - 链接 C 中的另一个结构

c - ARM 程序集 - 监视堆栈指针

string - 如何在两个字符串中找到最大的子字符串?

c - union 中的 printf 值取决于格式