我想实现一个函数来读取返回std :: string的用户输入。我还希望在返回字符串之前删除回车符,以防万一出问题(有回车符)。
std::string getInput() {
std::string str = "";
std::cout << "> ";
std::getline(std::cin, str);
if (std::cin.eof()) {
quitGame();
}
str.erase(std::remove(str.begin(), str.end(), '\r'), str.end());
return str;
}
错误发生在str.erase
上,它指出no instance of overloaded function
,但我相信我提供了足够的标题并匹配了函数的参数?
有人可以帮我吗?我在这里想念什么吗?
答案 0 :(得分:1)
我已经使用c ++ 11,c ++ 12和c ++ 14编译了您的代码。
无效的唯一原因是缺少算法标头
所以
#include <algorithm>
#include <iostream>
它应该可以解决问题-这是编译函数所需的仅有两个头文件。
另外,您已声明使用c ++ 11,因此请确保使用g ++和-std = c ++ 11标志进行编译。