【问题标题】:reading a line from a file and put it in a string (with fstream)从文件中读取一行并将其放入字符串中(使用 fstream)
【发布时间】:2014-02-06 08:15:15
【问题描述】:

我想读取一个文件并将每一行放在一个字符串中(每行包含一个单词) 我用过getline,但>> 命令也不起作用。 这是我的代码: (我正在使用视觉工作室)

string device_kind;
ifstream bank_info;
bank_info.open ("acquirer.info");

bank_info >> device_kind; //fails to compile
getline (bank_info, device_kind); //also fails

bank_info.close();

【问题讨论】:

  • “编译失败”不是一个非常有用的问题描述。你的编译器提供了更多的细节。
  • bank_info >> device_kind 应该不会编译失败。或者你的意思是它不像你想要的那样工作?确保您已包含<string>

标签: c++ file fstream getline


【解决方案1】:

使用bank_info.geline(device_kind,size) getline 是 ifstream 的成员函数,因此请与 .运算符。

【讨论】:

  • 还有一个全局 C++ 函数 std::getline(),OP 正在使用的函数。您使用的成员函数版本是用于 C 样式的数组,该行代码将无法编译。
【解决方案2】:

my code on IDEONE

string device_kind;
ifstream bank_info("acquirer.info");

if(!bank_info.bad())
{
   getline(bank_info, device_kind);
   cout << device_kind;
}

bank_info.close();

它为我输出文件的第一行,所以它也应该适合你!

如果您想以vector&lt;string&gt; 的行数读取文件,您可以这样做,就像我在这里做的那样:http://ideone.com/qNW5N9

【讨论】:

    猜你喜欢
    • 2019-11-11
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 2020-05-04
    • 1970-01-01
    相关资源
    最近更新 更多