即使包含<string>标头,Getline函数也未定义

时间:2019-07-27 03:19:02

标签: c++

我看了一些其他有关getline()无法运行的问题,但是有关该主题的大多数问题是由于程序员不包括字符串头而引起的。我已经包含了字符串标题,但是getline仍然给我错误E0304(我已经研究过)。

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
    char input[100];
    getline(cin, input);
    cout << input << endl;
}

2 个答案:

答案 0 :(得分:0)

非成员getline仅适用于std::string。对C样式的字符串使用std::istream成员函数getline

std::cin.getline(input, sizeof(input));

答案 1 :(得分:0)

getline有两种形式:

std::cin.getline(array, size); // reads into raw character array
getline(std::cin, string);     // reads into std::string

您应该使用std::string而不是原始字符数组:

#include <iostream>
#include <string>
#include <sstream>

int main()
{
    std::string input;
    getline(std::cin, input);
    std::cout << input << "\n";
}