【发布时间】:2013-03-03 10:46:23
【问题描述】:
string str, temp;
string c;
cout << "Insert the character that ends the input:" << endl;
getline(cin, c);
cout << "Insert the string:" << endl;
getline(cin, str, c.c_str()[0]);
我应该能够在字符串“test”中放入一个字符串,直到我输入结束字符,但是如果我输入一个双新行,它就无法识别结束字符并且它不会结束输入。
这是输出:
Insert the character that ends the input:
}
Insert the string:
asdf
}
do it}
damn}
【问题讨论】:
-
您的代码和示例输出不同。你能发布正确的吗
-
您的代码对我有用。但我会直接使用
char来代替c。 -
c[0]而不是c.c_str()[0]也可以,但我无法重现这种行为(g++-4.7,Ubuntu 12.10)。 -
我有 LLVM 并且使用
c[0]不起作用 -
@fpiro 我假设您的意思是 clang 或 llvm-gcc(llvm 本身不是编译器)。在任何一种情况下,这都应该可以正常工作。