输出到文本文件时C++换行符
C++ New line character when outputting to a text file
这只是一个简单的问题。但是我正在尝试将数据输出到一个文件,它工作正常。但是,我也尝试在适当的点实现新行,以便数据打印在单独的行上。
这是我的代码当前的样子:
主.cpp
Writer w("Output.txt");
w.writeString("The number of words in the script are: ");
w.writeInt(count);
w.writeEol();
w.writeString("The number of Officers in the script are: ");
w.writeInt(ofCount);
w.writeEol();
w.writeString("The number of Courtiers in the script are: ");
w.writeInt(cCount);
w.close();
作家.cpp
void Writer::writeEol()
{
out << "n" << endl;
}
我的代码必须以这种方式实现,因为我的整个系统都是围绕它构建的。
所以我的问题是,我将如何调整我的 Writer::writeEol() 以向我的输出文件添加新行?
我的输出文件目前是这样的:
The number of words in the script are: 32339The number of Officers in the script are: 2The number of Courtiers in the script are: 9
任何帮助都非常感谢。 :)
没有合适的问题,我只能猜测你想学什么,所以请随时用实际问题更新你的"问题":
您实际上是在文件中写入两个换行符,根据编码(即Windows或Unix换行符),您不会看到差异:
std::endl
将自动包含正确的字符以创建换行符。也没有必要写"n"
。
此外,您不必将std::endl
传递给流,除非您确实想要在特定位置使用换行符:
std::cout << "The result is: ";
std::cout << 50 << std::endl;
请记住,根据您的编辑器,您可能不会看到所有换行符,例如 Windows 记事本不会显示只有 n
的换行符。相反,它将显示为一个不可见的角色。对于接受的实际换行符,您应该rn
.相比之下,开源编辑器记事本++接受并显示这两种换行符。
在 writeEol()
方法中,您同时输出换行符 ( n
),并写出一个std::endl
。 这两者都具有写出换行符的效果,这是您想要的。 但是,std::endl
也会刷新流,这在某些情况下是不可取的(如果在每行之后刷新流,可能会导致速度变慢)。
我认为您的代码会做您想要的(尽管有两个换行符),但正如 shuttle87 所述,您只需要在每行末尾添加一个n
即可达到所需的效果。
相关文章:
- 如何防止clang格式在流运算符调用之间添加换行符<<
- C/C++ - 查询平台相关的换行符(用于内存映射文件)
- 在 Stream C++ 文本之前有一个额外的换行符
- 流:CSV 文件中的换行符
- 如何在三元条件运算符中添加换行符和连接? :在 C++ 中
- Clang-格式:在多行语句之后的换行符上打开大括号
- 在输出流中插入换行符
- 防止控制台在通道字符(在 c++ 中)中输入空格(即空格、制表符和换行符)
- QProcess::readAllStandardOutput() 和换行符
- 如果有换行符,clang 格式不会附加大括号
- 提取后返回换行符的C++istream.get()
- 如何在出现换行符之前将多个整数作为输入?
- 正则表达式 获取两个换行符之间的文本
- 包含换行符分隔的单词的文件和C++中这些单词的字符串向量的大小是否相同?
- 在字符串中输入换行符
- 从文本文件中读取数据并删除所有换行符空格,并在 C++ 控制台中显示
- 使用 fgets() 从键盘读取时从以前的输入读取换行符
- C++ 换行符上的合并排序错误中断
- 在 std::string 的末尾插入换行符
- 连接两个文件时如何避免冗余尾随换行符?