如何使用“get”;函数在前面的输入之后
How to use "gets" function in C++ after previous input?
我尝试用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);
}
相关文章:
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 修改链表主函数代码,用户将在其中输入节点的索引和数据以及正确的消息
- 为什么不能通过在错误输入后设置 std::cin.clear() 来使用 std::cin?
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 仅通过C++中数组初始化的不同方法,即可在同一输入上获得两个不同的答案
- CLion 是否支持自定义输入?如果是,我在哪里输入它们?
- 我已经创建了一个模板函数,但是在检查输入是奇数还是偶数时收到错误 C++.
- 虚幻引擎 3 游戏在 Steam 输入时崩溃
- 增强循环缓冲区push_back在前面插入数据
- 程序在接受输入后退出
- C++程序在用户输入之前结束
- C++循环:如何让程序在用户输入无效输入时多次重复"error"消息
- 程序在没有输入的情况下退出,它有基本的,驱动的类属性初始化问题
- 在接收输入时运行后台循环 (C++)
- JIT 编译器及其在 C++ 前面加快 .NET 中程序执行速度的好处
- if 语句仅在前面有调试 cout 行(C 中的多线程)时才通过
- 为什么在接受输入后循环退出时不会这样做
- 如何在读取 c++ 输入时脱离循环
- 如何使用“get”;函数在前面的输入之后
- 依赖范围;需要在前面输入名称;