【发布时间】:2013-06-09 04:24:21
【问题描述】:
我刚开始使用 C++ 中的数组,但在获取数组的第一个字符时遇到了问题。
这是我的代码,
1- 我输入一个名字,例如“Jim”
char name[30];
cin.ignore();
cin.getline(name, 30);
2- 我马上尝试计算数组
cout<<"NAME:"<<name; // THIS PRINTS 'im'
我确信它会打印“J”。我做错了什么?
【问题讨论】:
-
刚开始学习,你应该使用
std::string和std::getline。他们会让你的生活更轻松。刚刚开始学习,我的意思是担心它们以后如何工作,但仍然继续使用它们。 -
不管怎样,有可能你只是忽略了一个字符,而没有什么可忽略的,所以它忽略了新输入的第一个字母。
-
我意识到我根本没有得到第一个字符。为什么会这样?我在其他地方有完全相同的代码,并且输入正确。我不能使用 std::getline 只是因为我在课堂上没有看到它,我必须把它作为一个项目来处理
-
您可能在其他地方有剩余的输入要忽略。以及
std::string之前有什么类使用字符数组(或者请不要说你使用指针)?