所以我使用cin
來爲char數組輸入數據。Cin正在爲char數組工作,但不適用於int數組
char mycroft[2];
cin>>mycroft;
cout<<mycroft;
它工作正常。現在,我使用cin
採取輸入一個int數組:
int mycroft[2];
cin>>mycroft;
cout<<mycroft;
不過,我得到這個錯誤,我不明白:
error: no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream}' and 'int [2]')|
有人能告訴我爲什麼它不工作?另外我的教授說,採用cin
進行輸入是不可取的。在什麼程度上這是真的?
這是因爲'char'數組被視爲舊的C風格*字符串*。沒有任何其他數組或指針的特殊處理。這當然意味着您的示例字符數組只能輸入單個字符。 –
@Someprogrammerdude umm ...不是?我已經給出了「你好」這個詞,它起作用了! – Mark
然後輸入運算符將寫入六個字符(不要忘記字符串終止符)到一個兩元素數組。它會寫出界限,你將有*未定義的行爲*。這就是爲什麼你應該總是使用'std :: string'來輸入字符串的原因! –