我有以下代码:
char myText[256];
cin.getline(myText,256);
为什么我必须将字符数组传递给cin.getline()而不是字符串?
我已经读过,一般来说使用字符串比使用字符数组更好。我是否应该在使用cin.getline()
检索输入后将字符数组转换为字符串,如果可能的话?
答案 0 :(得分:4)
我相信这是一件不幸的历史文物。
但是,您可以使用std::getline
免费功能。
std::string myText;
std::getline(std::cin,myText);
答案 1 :(得分:4)
您正在使用istream的成员方法。在这种情况下,cin。此功能的详细信息可在此处找到:
http://en.cppreference.com/w/cpp/io/basic_istream/getline
但您可以使用std::getline
使用字符串而不是char数组。使用字符串更容易,因为他们知道他们的大小,他们自动增长等等,你不必担心空终止字符等等。还可以使用适当的字符串构造函数将char数组转换为字符串。