c++ - std 没有成员 'getline' ?

标签 c++ io std getline

我正在尝试使用 std::getline,但我的编译器告诉我 getline 未识别?

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <fstream>
#include <cstdlib>

int main(){
    using namespace std;
    string line;
    ifstream ifile("test.in");
    if(ifile.is_open()){
        while(ifile.good()){
            getline(ifile,line);
        }
    }
}

最佳答案

std::getline string 中定义标题。

#include <string>

另外,您的代码没有使用 cstring 中的任何内容, cstdio , cmath , 或 cstdlib ;为什么要包括这些?

编辑:澄清关于 cstring 的混淆和 string标题,cstring提取C 运行时库的内容 string.h进入std命名空间; stringC++ 标准库 的一部分,包含getline , std::basic_string<> (及其特化 std::stringstd::wstring )等——两个非常不同的标题。

关于c++ - std 没有成员 'getline' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5781132/

相关文章:

io - Lua: io.read() 不适用于长字符串

c++ - 检查一个复数是否有 NaN

c++ - 在 C++ 中拆分一系列以 null 分隔的字符串的简单方法

c++ - std::sort - 是否传递了错误的比较器未定义行为?

c++ - 是否有一个 std::string 函数来附加空格直到给定的缩进级别

python - Pandas 在 BytesIO 中将 df 存储到 csv

c# - 有没有办法让 System.IO.Directory.GetFiles(string) 在程序目录中查找?

c++ - 将 std::move 与 lambda 一起使用时,移动何时发生

java - JNI 环境指针

c++ - 广义 lambda 的 vector