如何使用“get”;函数在前面的输入之后

How to use "gets" function in C++ after previous input?

本文关键字:在前面 输入 之后 函数 何使用 get      更新时间:2023-10-16

我尝试用gets()函数输入数据,但每当程序执行到与gets的留置权时,它都会忽略它。

当我使用gets()时,没有之前的数据输入,它运行正常。但是当我在数据输入后使用它时,问题就发生了。

下面的代码是在之前的数据输入之后使用的(所以在执行中我不能输入数据到字符串):

int main() {
    char str[255];
    int a = 0;
    cin >> a;
    if(a == 1) {
        gets(str);
        cout << "n" << str << endl;
    }
}

我该如何解决这个问题?

注意:对于cin.getline

也是如此

After

cin >>a

当您输入a并输入时,cin后面还有一个n字符,因此,当您使用cin.getline()gets(str)时,它将读取该换行符。

尝试如下:

cin >>a;
cin.ignore(); //^^this is necessary
if(a==1){
    gets(str);
}

你最好使用c++的方式读取输入:

cin >> a;
cin.ignore();
string str;
if (a == 1)
{
   getline(cin, str);
}