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