gpt4 book ai didi

c++ - 如何在先前输入后在 C++ 中使用 "gets"函数?

转载 作者:搜寻专家 更新时间:2023-10-31 00:16:20 25 4
gpt4 key购买 nike

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

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

这是在之前的数据输入之后使用的代码(因此在执行时我无法将数据输入到字符串):

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

我该如何解决这个问题?

注意:cin.getline 也是如此

最佳答案

之后

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);
}

关于c++ - 如何在先前输入后在 C++ 中使用 "gets"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com