1. 程式人生 > >多組資料的輸入和n組資料的輸入

多組資料的輸入和n組資料的輸入

在新接觸一門語言時,特別是這種抽象的語言,我覺得在入門階段是最難的,可能到現在我也沒有入門吧,我記得剛開學時打oj,困擾我許久的問題是多組資料的輸入,還有n組資料的輸入。    下面是輸入不定組資料,直到檔案終止,即EOF(end of files),EOF也是-1,而可以用~位運算替換的意思,即無資料輸入的時候跳出迴圈,輸入結束,在這裡可以簡單說說~位運算,這個~是按位取反,如果無資料輸入時,返回值是-1,-1取反則為0,while(0)就跳出迴圈。但是用while(~scanf)時要注意的是,在輸入的多組資料是字元時,scanf賦值不成功把讀到的內容返回stdin的緩衝區,我們姑且稱這個值為num,取反後進入下一個迴圈,scanf再次讀到了這個stdin緩衝區的num,此時就進入了一個死迴圈。
  1. while(~scanf("%d",&n))   // while(scanf("%d",&n)!=EOF)也是一樣的
  2. {  
  3. }  
而n組資料則相對多組資料要容易理解,即輸入一個數代表有n組資料,此時讀入n,然後用一個while迴圈,這個while迴圈代表的就是迴圈讀入n次資料,很簡單。
  1. scanf("%d",&n);  
  2. while(n--)  
  3. {  
  4.   scanf("  ", );  
  5. }