【问题标题】:reading a line from ifstream into a string variable将 ifstream 中的一行读入字符串变量
【发布时间】:2011-10-03 12:52:56
【问题描述】:

在以下代码中:

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main() {
    string x = "This is C++.";
    ofstream of("d:/tester.txt");
    of << x;
    of.close();


    ifstream read("d:/tester.txt");
    read >> x;
    cout << x << endl ;
}

Output :

This

由于 >> 运算符读取到第一个空格,我得到了这个输出。如何将行提取回字符串?

我知道istream&amp; getline (char* s, streamsize n ); 的这种形式但我想将它存储在字符串变量中。 我该怎么做?

【问题讨论】:

标签: c++ string ifstream getline


【解决方案1】:

使用来自&lt;string&gt;std::getline()

 istream & getline(istream & is,std::string& str)

所以,你的情况是:

std::getline(read,x);

【讨论】:

  • getline()(一个流对象)的返回值应该在布尔表达式中计算。流对象的布尔值评估在这里做了一个非常重要的技巧:它评估底层流的failbitbadbit。应该利用这一点。更深入的解释可以在这里找到:gehrcke.de/2011/06/…
猜你喜欢
  • 2012-01-15
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 2022-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
相关资源
最近更新 更多