以前只是利用cin读取简单的几个数据,现在要输入的数据在一行内,大概包含5000个四位数,利用下面的代码后发现输入到七八百个就无法继续输入了,这是cin的问题吗(只能在输入回车键后,才能将数据送入缓冲区)?应该怎么解决这种问题呢?试了cin.getline()
、cin.get()
、scanf
都没能解决这个问题。
int size;
cin>>size;
double array[size];
for(int i=0;i<size;i++){
cin>>array[i];
}
谢谢!
伊谢尔伦2017-04-17 15:41:19
バッファがいっぱいになると、バッファがフラッシュされる前に改行文字を入力する必要はありません。これがうまくいかない場合、投稿者は考えを変えることができるでしょうか?まず read または getline (まだテストしていません) を使用して、string または char* のすべての入力を一度に読み取ります。次に、入力時に同じ区切り文字を使用する必要があります (スペースであると仮定して)。その後、For boost の分割し、空間に従って分割を入力し、結果のベクトルの要素を数値に変換すれば問題ありません