【问题标题】:Error with getline ifstreamgetline ifstream 出错
【发布时间】:2014-04-30 22:56:26
【问题描述】:

我得到的错误是“没有匹配的函数调用 getline(const char*&, String*&)”。我正在尝试从文本文件中提取一行,其中一行的示例是:4:17,Dark Alliance。我需要使用 getline 的原因是因为在我得到这条线之后,我需要根据歌曲长度和标题之间的逗号(分隔符)将它分成两部分。感谢任何帮助。代码如下:

  String* song_line = new String;
  song_line = getline(file_name, song_line); //here is where the error is coming in.

  Tokens* song_token = new Tokens;
  char delimiter = ",";
  song_token = createTokens(song_line, delimiter);

  String* length = getToken(song_token, 0);
  String* song_title = getToken(song_token, 1);
  addSong(cd, song_title, length);

【问题讨论】:

  • 请不要使用指针。
  • @KerrekSB 分配的结构方式和函数采用的参数要求我这样做。我希望我不必这样做。
  • 除非作业明确告诉您使用指针,请不要使用指针
  • @MooingDuck 确实如此。教授给了我们所有的函数声明和参数,所以我不得不这样做。
  • @user3558697:函数接受指针作为参数并不意味着你必须动态分配内存。

标签: c++ ifstream getline


【解决方案1】:

std::getline 的第一个参数是 istream,而不是 char*。此外,第二个参数是std::string&,而不是std::string*

http://en.cppreference.com/w/cpp/string/basic_string/getline

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2017-04-05
    • 2014-11-03
    • 1970-01-01
    • 2011-03-31
    • 2012-08-21
    相关资源
    最近更新 更多