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

c++ char arrays, use in cin.getline()

本文关键字:getline cin 字符 数组 c++      更新时间:2023-10-16

我有以下代码:

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

为什么我必须传递一个字符数组到cine .getline(),而不是一个字符串?

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

您正在使用istream的成员方法。在这个例子中是cin。这个函数的详细信息可以在这里找到:

http://en.cppreference.com/w/cpp/io/basic_istream/getline

但是你可以用std::getline

使用字符串而不是字符数组。使用字符串更容易,因为它们知道它们的大小,它们会自动增长等,你不必担心null终止字符等等。也可以通过使用适当的字符串构造函数将字符数组转换为字符串。

我相信这是一个不幸的历史产物。

但是,您可以使用std::getline free函数。

std::string myText;
std::getline(std::cin,myText);