c++中由于某种原因导致字符串被截断
String Truncated for Some Reason in C++
所以,我刚刚开始c++,我有一个问题。我声明了一个字符串变量,但是当我输入给变量一个值,然后尝试显示它时,它只显示句子的第一个单词。
#include <iostream>
#include <string>
using namespace std;
using std::string;
int main()
{
string answer;
cout << "Give me a sentence and I will repeat it!";
cin >> answer;
cout << answer;
return 0;
}
例如,我输入"Yay it worked!",它输出"Yay"
std::cin
的分隔符是空格,所以它只占用句子的第一个单词。像@πάνταῥεῖ说,而是使用std::getline(cin,answer)
。
正如注释所解释的,cin
只会读取,直到第一个空格被满足(在您的情况下,这似乎是一个空格)。相反,您可以使用std::getline
,它将读取到指定的字符,或者默认情况下返回:
std::string answer;
std::cout << "Give me a sentence and I will repeat it!";
std::getline(std::cin, answer):
std::cout << answer;
使它一直读到指定字符的样子:
char end_char = 'a';
std::getline(std::cin, answer, end_char);
相关文章:
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 由于某种原因,WriteProcessMemory无法正常工作
- 我有一个应该打印数组的函数,但由于某种原因它不起作用
- 在矩阵逆变器上工作,由于某种原因,我的指数循环不起作用
- 由于某种原因,我的代码中出现了 [json.exception.type_error.302]。我知道错误意味着什么,但我不知道哪里有故障
- 由于某种原因,客户端未调用服务器 RPC
- 由于某种原因,我无法创建 GLFW 上下文
- 由于某种原因,多维数组不会从函数中更改元素
- 由于某种原因,用浮子的乘法是错误的
- "total += i;"由于某种原因不起作用
- C++ 由于某种原因,我无法让模板在链表中工作,我敢打赌这是一个简单的错误,但我就是不明白
- 我是初学者,由于某种原因,这不起作用,我正在使用视觉工作室
- C++:当我输入一个字符串时,由于某种原因,程序期望更多,并导致整个代码出现问题
- 由于某种原因,FSTREAM测试程序崩溃
- XNextEvent 由于某种原因不起作用
- 由于某种原因,必须发送两次 MPI 消息
- 由于某种原因,使用 OR 运算符执行操作不起作用
- 将短文转换为二进制..由于某种原因,前 8 位数字和后 8 位数字被交换
- 涉及循环的简单程序由于某种原因卡住
- c++中由于某种原因导致字符串被截断