【发布时间】:2016-11-14 15:16:27
【问题描述】:
我无法找出文件 istream getline() 调用的正确语法
我已经尝试过使用各种不同类型的参数调用getline() 的多种变体,并且在查看了几个不同的文档之后,它就是行不通。
std::ifstream in("file.txt");
char tmp;
std::getline(tmp, in);
这个结果
../directory/file.cpp:178:2: error: no matching function for call to 'getline'
std::getline(tmp, in);
^~~~~~~~~~~~
但是其他文档说
std::ifstream in("file.txt");
char tmp;
in.getline(tmp);
也吐出来
../directory/file.cpp:179:5: error: no matching member function for call to
'getline'
in.getline(tmp);
^~~~~~~~~~~~
我需要做的就是逐行读取文件,但我无法弄清楚。有人可以指出我正确的方向吗?如果需要,我可以提供更多信息。
【问题讨论】:
-
你检查docs了吗?
-
就我个人而言,当我遇到函数语法问题时,I look up the syntax online。您应该使用
std::string的函数形式。 -
@EdChum 我引用了这个cplusplus.com/reference/istream/istream/getline 现在检查你的资源
-
@ThomasMatthews 是的,如果我可以使用 std::string 会更容易,但根本问题是这是针对我的数据结构课程的,我必须构建自己的字符串。所以这是我试图为我的自制数据类型重载输入运算符
-
@conjenks 该页面没有提到任何将单个
char作为目标参数的重载。 (没有,因为将一整行读入一个字符没有意义。)由于这是课程作业,您现在应该已经涵盖了指针的概念,并且可能最近。
标签: c++ syntax parameters getline