關於c 中以空格分隔的數字資料的一種讀取方法

2021-06-23 00:11:39 字數 531 閱讀 3083

最近在做題時發現了這樣乙個問題,有些題目的資料是以單行給出的,比如(2 3 -92 234 275 -7)這樣的數列,用cin讀取不太方便(cin一般以換行結束乙個資料的輸入),所以常規做法是將之轉化為字串再行處理,但是在已知數列長度的情況下可以用以下方法讀取;

已知長度為n

for(i=0;i

cin>>a[i];

這種讀取方法在實現上更方便(在乙個新手看來,或許stl中有更好的方法不需要知道n)

---------------------------------------------

(不需要知道n)

再加點內容吧,要不然這篇也太水了點。。。

其實可以用cin>>noskipws讀取所有字元

然後判斷讀入的字元是否是數字,如果是,那麼把它放回到標準輸入流,再以普通方式讀取該數字,要用cin.putback();

具體可以這麼寫

while(cin>>c;)

結合其他ctype函式這個方法還可以用於其它輸入,比如符號,回車等的判斷和處理,效率上也沒有明顯下降

C 讀取txt中用逗號 空格 換行分隔的資料

更多txt檔案處理請見 使用c 時,免不了要讀取txt檔案中的資料,但是不同的資料格式導致讀取的方式不同,下面進行乙個小結。1.獲取資料夾下的檔名 void getallfiles string path,vector files else while findnext hfile,fileinfo...

js擷取以空格作為分隔符的字串

使用split 函式切割出來的長度有兩種情況 備註 trim 函式是用於去除字串兩端的空白字元。該函式可以去除字串開始和末尾兩端的空白字元 直到遇到第乙個非空白字串為止 它會清除包括換行符 空格 製表符等常見的空白字元。1 切割出來的長度包含有空格 var value this item.value...

關於向陣列中新增數字,數字延伸,斷續不變的問題

前兩天寫乙個需求如下 已有值分別為 1 2 3 4 5的資料,現新增資料的值為 2 確認往裡面新增後,則2前面的值保持不變,2以及2後面的值要依次往後順延一位。變更後的的排序值分別為 1 2 3 4 5 6 挺簡單的乙個小功能,寫個帖子也算是做個筆記 如下 public static void ma...