在xcode 4.3中,我将项目设置为使用c ++ 11:我将语音c ++语言方言更改为c ++ 11,将c ++标准库更改为“libc ++(支持c ++ 11的LLVM c ++标准库) ”。
然后我尝试编译并执行这个简单的代码:
#include <iostream>
using namespace std;
int main (int argc, char** argv)
{
char buffer[100];
cin.getline(buffer,100);
cout << buffer << endl;
return 0;
}
问题是它要求输入两次。例如我输入“hello”并且流保持打开状态,等待另一个字符串。如果我输入另一个字符串,则打印出“hello”。
如果我不使用c ++ 11,则不会出现此问题
有谁知道如何解决这个问题?我想在不使用std :: string的情况下输入最多100个字符。
答案 0 :(得分:4)
这是libc ++中的一个错误。我很抱歉。它固定在Mountain Lion上。您可以使用getline(istream&, string&)
来解决此问题:
#include <iostream>
#include <string>
using namespace std;
int main (int argc, char** argv)
{
std::string buffer;
getline(cin, buffer);
cout << buffer << endl;
return 0;
}