std::stringstream line;
getline(stdin, line);
有人可以向我解释为什么在尝试编译时为什么出现“没有匹配的函数调用getline”错误?
答案 0 :(得分:2)
C ++没有getline
带有FILE*
(stdin
)和iostream
(line
)作为参数。
相反,您应该
std::string line;
if (std::getline(std::cin, line)) // ensure read succeeded
{
std::stringstream linestream(line);
// opperate on linestream
}
其中std::cin
是与stdin
关联的C ++ IO流。
如果您绝对必须在原始文件中使用stdin
,则在POSIX兼容系统上,您可以
char * line;
size_t len;
if (getline(&line, &len, stdin) != -1) // ensure read succeeded
{
std::stringstream linestream(line);
free(line); // release the buffer allocated by getline
// must free(line). Do not delete line;
// opperate on linestream
}
您已将此标签标记为C ++,所以我建议使用前者。