【发布时间】:2013-03-27 05:44:34
【问题描述】:
我正在努力学习 C++。我现在在弦上。 我写了这个简单的方法,它应该要求输入一个字符串然后返回它。为此,我正在使用 cin.getLine() 方法,但在使用 cin.getLine() 后未打印字符串
string getString(char string[])
{
cout << "Please enter a string to process ";
cin >> string;
cout << "String in getString before process: " << string << "\n";
cin.getline(string, STRINGSIZE);
cout << "String after processing: " << string << "\n"; // here string is not printed
return string;
}
谁能帮我理解我做错了什么?谢谢
【问题讨论】:
-
这个函数怎么调用?
string是否指向有效且足够大的内存区域?为什么符号名称string只会让看到您的代码的人与std::string混淆。这甚至可以编译吗? -
你为什么从
cin读到string的东西两次? -
STRINGSIZE 的值是多少,您的测试输入是什么?
-
是的,它确实可以编译。我在我的主程序中调用该方法。 STRINGSIZE = 100。这是我声明的常数。我可以使用 word[] 更改名称字符串。也许问题就像@Mat 指出我正在阅读两次。我摆脱了第一个 cin 似乎还可以
-
@lucaConfa 或摆脱 getline,看我的回答