c ++ char数组,在cin.getline()中使用

时间:2011-09-25 23:17:32

标签: c++ string arrays

我有以下代码:

char myText[256];
cin.getline(myText,256);

为什么我必须将字符数组传递给cin.getline()而不是字符串?

我已经读过,一般来说使用字符串比使用字符数组更好。我是否应该在使用cin.getline()检索输入后将字符数组转换为字符串,如果可能的话?

2 个答案:

答案 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数组转换为字符串。