将 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&amp; getline (char* s, streamsize n ); 的这种形式但我想将它存储在字符串变量中。 我该怎么做?

【问题讨论】:

也可以在这里查看建议:***.com/questions/116951/… 【参考方案1】:

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

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

所以,你的情况是:

std::getline(read,x);

【讨论】:

getline()(一个流对象)的返回值应该在布尔表达式中计算。流对象的布尔值评估在这里做了一个非常重要的技巧:它评估底层流的failbitbadbit。应该利用这一点。更深入的解释可以在这里找到:gehrcke.de/2011/06/…

以上是关于将 ifstream 中的一行读入字符串变量的主要内容,如果未能解决你的问题,请参考以下文章

将字符串转换为R中的变量

ifstream() 从字符串变量中获取文件名的 C++ 问题

字母排序

VB6.0中如何实现逐行读入文本文件?

如何在MATLAB中读入多个音频文件啊?

读入字符并创建数组c ++