%是轉義字元,以上這類符號用於格式輸入與格式輸出,就是我們常見的printf和scanf函式中。
在輸入輸出時,對不同型別的資料(如int,float,char等)要使用不同的格式說明。
%d——按照十進位制整數形式輸入/出(帶符號整數,正數不輸出符號)
%o——按照八進位制輸入/出無符號整數
%x——按照十六進製制輸入/出無符號整數
%u——按照十進位制形式輸入/出無符號整數
%nd——n表示有效數字的位數
%f——按照浮點數輸入/出(以小數形式輸出單、雙精度實數)
%lf——按照長浮點數輸入/出
%c——按照字元型輸入/出
%e——按照科學計數法輸入/出(以指數形式輸出單、雙精度實數)
%s——按照字串輸入/出
功能:迴圈從輸入流讀取n,直到遇到eof為止,等同於while(scanf("%d",&n)!=eof)
scanf()函式返回成功賦值的資料項數,出錯時則返回,eof定義為-1。
~是按位取反,-1十六進製制補碼表示為0x ffffffff,f是二進位制的1111,取反後就全部變成0了。
&n代表變數n的記憶體位址,也就是將讀取的第乙個整數賦值給變數n。
eof——ascii碼範圍0~127,不可能出現-1,故作為while迴圈的結束標誌。(eof表示end of file,是檔案結束標誌。)
於是while結束。只有返回值為eof(即-1)時,其取反的的值(即while迴圈的判斷條件)才為0,才能結束迴圈,其它輸入情況下(無論是否輸入成功)while迴圈的判斷條件為非0,即為真。
這種寫法的漏洞在於:一但輸入的值為字母、符號之類的,scanf賦值不成功把讀到的內容又返回到stdin的緩衝區(假設這個值為t),其取反得到的值使while又進入到下一次迴圈,scanf又從stdin緩衝區裡讀到了原先吐回的t,如此成了死迴圈……
C語言中的檔案輸入輸出函式
1.fopen 檔名 開啟方式 2.fclose 檔案指標 3.fputc 字元 檔案指標 putc 與fputc的引數相同 4.fgetc 檔案指標 getc 與fgetc的引數相同 5.fgets 儲存目標 長度,檔案指標 6.fputs 字串 檔案指標 7.fprintf 檔案指標,格式字串 ...
C語言中的檔案輸入輸出函式
1.fopen 檔名 開啟方式 2.fclose 檔案指標 3.fputc 字元 檔案指標 putc 與fputc的引數相同 4.fgetc 檔案指標 getc 與fgetc的引數相同 5.fgets 儲存目標 長度,檔案指標 6.fputs 字串 檔案指標 7.fprintf 檔案指標,格式字串 ...
c語言中相關檔案輸入輸出小結
分類 函式名呼叫形式 功能開啟檔案 fopen file fp fp fopen 檔名,使用檔案方式 開啟檔案 關閉檔案 fclose fclose 檔案指標 關閉檔案 檔案定位 fseek fseek 檔案型別指標,位移量,起始點 改變檔案位置指標的位置 rewind 使檔案位置指標重新置於檔案開...