字符串输入复制的文本
string input copied text
例如,我有以下一段代码:
string str;
int i;
cout<<"input:";
cin>>str;
cout<<"integer:";
cin>>i;
这段代码实际上没有任何问题,但是如果我将一些文本粘贴到"input"中的命令提示符中,它会自动将一些复制的文本填充到"整数"中。我该如何解决这个问题?
编辑:我可以根据需要键入文本,但是当我复制文本时会出错。我不知道为什么。
我猜,你的文本包含空格。所以,std::cin
在这里行不通。请改用std::getline
。
std::string str;
std::getline( std::cin, str );
std::getline
还有第三个参数 - 分隔符。默认情况下,它是新行字符。
如果您的文本确实包含换行字符,则这将不起作用。您有 2 个选项:
- 查找可用作分隔符的唯一字符,并将其作为
std::getline
的第三个参数传递 - 从用户输入(
std::cin
)中逐行读取(使用std::getline
)并查找一些特殊的字符串,这将告诉您的程序文本在哪里结束。没有其他方法可以知道int
eger 从哪里开始(除非文本大小固定,但我对此表示怀疑)
string str;
int i;
cout<<"input:";
getline(cin, str);
// you want to read the whole line, operator>> will read until whitespace
cout<<"integer:";
cin>>i;
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 无法将整个文本文件复制到字符数组
- 将文本从一个文件复制到另一个c++流时出错
- 如何将控制台输出中的所有内容复制到文本文件?
- C++ 复制字符串文本(来自 C)
- 文本文件中的 grep 字符串,并将它们复制到 CMake 中的目录中
- C++可以从文本文件复制并粘贴到打开的Word程序中
- 如何将percision格式复制到文本文件
- 从文本内容复制图片 (.tga)
- 如何将足够的数据从文本文件分配到char*中,然后将其复制到内存C 中
- QStyledItemDelegate 和 QStandardItem 阻止更改文本,仅启用选择和复制
- 将可视C++控制台输出写入或复制到文本文件
- 我试图运行将文本从一个文件复制到另一个文件的程序
- 从输入复制到输出文本文件
- 如何将文本从一个文件复制到另一个文件,然后将文本字符串的第一个字母转换为大写
- C++使用迭代器复制文本文件
- 将文本复制到 MFC 中的剪贴板
- 字符串输入复制的文本
- 用c++将文件中的一行文本复制到字符串中
- 编写一个函数,将字符串文本复制到指针给出的 char 数组中