c++ - 从用户读取字符串

标签 c++ string

<分区>

#include<iostream>
#include<cstring>
using namespace std;

int main() {
    int t;
    cin >> t;

    string s;
    getline(cin, s);
    cout << s;

    return 0;
}

在为 t 输入后,只要我按下回车键,程序就会终止,因为 string 将换行符作为输入。我能做些什么?我无法在这两个输入之间输出任何内容,并且必须在 t 之后输入。

最佳答案

Enter 键用于结束 t 的输入被添加到输入缓冲区。因此 getline 看到的缓冲区中的第一个输入是 Enter 键,它认为您输入的是空行。

使用 ignore跳过换行符的函数:

std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

您还可以使用两个 std::getline 调用,并使用例如std::stoi将输入转换为 int。或者输入 std::istringstream并使用普通的 >>> 运算符提取。

关于c++ - 从用户读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38813563/

相关文章:

c++ - 仅更改 const-ness 的指针转换可以调用未定义的行为吗?

c++ - 将 std::vector 传递给数组引用

c++ - 努力使用模板化结构选择类型

C++ std::thread 在堆栈上

ios - 用 isEqual 比较字符串没有运行完整的功能 iOS

python - 当 csv 文件中存在字符串时增加变量

c++ - 使用 C++ 实现 BFS

Java 程序在 "for"循环后卡住

regex - 从 diff 生成正则表达式

python - Python 中字符串中的 float 值转为 int