如何在 C 中使用 \n 和 fprintf 将文本写入文件
How to write text to file using \n and fprintf in C
我对 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"
模式打开文件,那应该会自动发生,如果它在 [=21] 中以这种方式实现=],那么这是一个更好的解决方案,因为该程序将自动在另一个操作系统中正常运行。
这对我来说仍然很烦人,因为这些文件不能跨操作系统传输。
我对 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"
模式打开文件,那应该会自动发生,如果它在 [=21] 中以这种方式实现=],那么这是一个更好的解决方案,因为该程序将自动在另一个操作系统中正常运行。
这对我来说仍然很烦人,因为这些文件不能跨操作系统传输。