将 ifstream 中的一行读入字符串变量
Posted
技术标签:
【中文标题】将 ifstream 中的一行读入字符串变量【英文标题】:reading a line from ifstream into a string variable 【发布时间】: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& getline (char* s, streamsize n );
的这种形式但我想将它存储在字符串变量中。
我该怎么做?
【问题讨论】:
也可以在这里查看建议:***.com/questions/116951/… 【参考方案1】:使用来自<string>
的std::getline()
。
istream & getline(istream & is,std::string& str)
所以,你的情况是:
std::getline(read,x);
【讨论】:
getline()
(一个流对象)的返回值应该在布尔表达式中计算。流对象的布尔值评估在这里做了一个非常重要的技巧:它评估底层流的failbit
和badbit
。应该利用这一点。更深入的解释可以在这里找到:gehrcke.de/2011/06/…以上是关于将 ifstream 中的一行读入字符串变量的主要内容,如果未能解决你的问题,请参考以下文章