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