【问题标题】:How do I store a variable length string in C/C++ [duplicate]如何在 C/C++ 中存储可变长度字符串 [重复]
【发布时间】:2012-10-25 19:46:00
【问题描述】:

可能重复:
What is the best way to slurp a file into a std::string in c++?

我试图将整个文本文件存储为字符串, 如何动态存储文本文件可能包含的任意数量的字符?

【问题讨论】:

标签: c++


【解决方案1】:

C++ 标准库为动态大小的字符串提供std::string 类型。它是std::basic_string<char> 的类型定义。 cppreference.com 上有a useful reference

要从文件中读取行到std::string,请查看std::getline。您可以使用它从文件中获取一行,如下所示:

std::string str;
std::getline(file_stream, str);

请务必检查流(由std::getline 返回)以查看是否一切正常。这通常在循环中完成:

while (std::getline(file_stream, str)) {
  // Use str
}

【讨论】:

    【解决方案2】:

    除了sftrabbit的回答:

    请注意,您可以通过以下方式一次性将整个文件读入字符串:

    std::ifstream input_ifstr(filename.c_str());
    
    std::string str(
        (std::istreambuf_iterator<char>(input_ifstr)),
        std::istreambuf_iterator<char>());
    
    input_ifstr.close();
    

    如果你愿意,你可以从中构造一个字符串流,然后用 getline 进行处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 2011-01-15
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      相关资源
      最近更新 更多