c++ - 将数据传递到字符串时如何保留文件的格式?

标签 c++ file text formatting

例子:

测试.xml:

<Test>
    This is a test.
</Test>

这是读取每一行并将其添加到"file"字符串的代码:

std::ifstream infile("Test.xml");
if (infile.is_open()) {
    while (!infile.eof()) {
        std::getline(infile, buffer); // "buffer" variable was created before-hand
        file += buffer;
    }
}

但是当我输出"file"字符串时,它显示为:

<Test>    This is a test </Test>

当我需要它保留其格式化属性时。

我很想知道是否有一种方法可以在读取文件时将制表符和换行符分别保留为“\t”和“\n”并将它们插入到字符串中?

最佳答案

std::getline(infile, buffer); 不会包含尾随换行符

您可以使用:

file += buffer + std::string(1,'\n');

使用这个所有的换行符都将被保留。 制表符和空格将已使用 std::getline(infile, buffer);

保留

关于c++ - 将数据传递到字符串时如何保留文件的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18802398/

相关文章:

c++ - 模板元编程,带有可变参数模板 : compiler error

c# - 试图创建一个文件并立即删除它

java - Java实现文件上传类型

ios - 如何从 iOS 的 epub 格式中提取 txt

c++ - std::map::lower_bound 正在为大于 2000 的映射键生成核心转储

c++ - 使用 std::bind 和 std::function 将类成员函数用作另一个类成员例程的回调

c++ - std::cin 在不应该接收输入时接收输入

perl - 用 perl 将文件内容打印到屏幕上

c - 将文本文件读入结构

java - PDFBox - 获取单词位置(而不仅仅是字符')