1
我一直在使用开发的C++代码,并尝试这种代码(在多个程序):: Blocks的,但首先获得(),随后当由CIN命令将永远不会得到执行>>为什么第一个get()在这段代码中不起作用?
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
int i;
char c[10], d[10];
cout<<"Enter int ";
cin>>i;
cout<<"Enter string ";
gets(c); // this is where things act all possessed
cout<<"Enter 2nd string ";
gets(d);
cout<<i<<endl<<c<<endl<<d;
return 0;
}
请帮我
我曾尝试:
我曾尝试服用变量i为char,然后拍摄只用得到()的,它完美的作品 输入但后来我严格需要把它作为一个整数,在一些程序中,能够做东西李ke增量/减量/任何
永远不要使用'gets',它是旧C时代的遗物。它是破碎的函数,很容易发生缓冲区溢出。如果你使用C,我会建议你使用'fgets'来代替。但是因为你使用的是C++,所以我认为你必须用'cin'和'std :: string'来代替简单的'char'字符串。 – user694733
@ user694733 OP的问题不是关于get的不安全性,而是关于它如何工作的误解。他会得到与cin.getLine()或其他任何其他问题 –
@DenisSheremet因此评论,而不是一个答案。但是,无论如何,使用'gets'仍然是错误的,因为它非常糟糕。 – user694733