1>scanf()和printf()//支援格式控制符的輸入和輸出
scanf()的返回值是成功讀入的專案的個數,如:
num=scanf("%d%d",&a,&b);
如果a、b均讀入成功,則num 的值為2
scanf()除了%c模式之外,在讀取輸入時,均跳過空白字元(製表符、空格、換行符),直到第乙個非空白字元處開始讀取,讀至遇到下乙個空白字元或與正在讀取型別不符的字元停止。例如讀取下面這個輸入行:
-13.45e12# 0
%d模式時,scanf()會讀取-13並在小數點處停止,將小數點作為下乙個輸入字元。然後,scanf()將會把字串行-13轉換成相應的整數值,並將該值儲存在目標整型變數中,如果緩衝區前面的是非數字,則scanf()不讀入。
%f模式時,scanf()會讀取字元-13.45e12,並在#處停止,將它作為下乙個輸入字元。然後把字串行-13.45e12轉換為相應的浮點數值,並將該值儲存在目標浮點型變數中。
%c模式時,scanf()會讀取並儲存第乙個字元,在這裡是乙個空字元。
printf()的返回值是當前次輸出的字元個數( 乙個位元組的標準)。
2>getchar()和putchar()//單個字元的輸入和輸出
getchar()每次讀取乙個字元。如控制台輸入jigf按下回車鍵時,僅讀取j
getchar()多用於逐個讀取字元,一般使用行緩衝。如:
while((ch=getchar())!='\n')
當鍵盤輸入一段字元並最後按下回車鍵後,getchar()開始從j鍵盤緩衝區逐個讀取並賦予ch,
putchar()每次列印乙個字元,括號中的引數可以是數字,字元型變數,單引號引起來的字元,列印結果均為引數對應的字元。
返回值:(1)當輸出正確時,返回輸出字元轉換為的unsigned int 值;(2)當輸出錯誤時,返回eof檔案結束符。
3>gets()和puts()//字串的輸入和輸出
gets()用於字串的讀取,使用行緩衝,從鍵盤輸入一段字元並下回車鍵時,開始從鍵盤緩衝區讀取,並丟棄換行符\n,自動新增空字元\0。gets()的缺點是當輸入的字元數超過了用來存放的字元型陣列的大小,就會溢位到相鄰的記憶體中。
puts()用於字串的輸出,並於結尾自動新增換行符\n。
4>fopen()和fclose()
fopen()用於開啟檔案,有兩個引數,第乙個是要開啟的檔名,更確切地說是包含該檔名的字串的位址;第二個是用於指定檔案開啟模式的乙個字串。函式的返回值是乙個檔案指標,該指標用於其他函式(例如fgets()等)操作指定的檔案。(示範見於下面其它檔案操作函式的例子**)
fopen()的模式引數列表:
"r"開啟乙個文字檔案,可以讀取檔案
"w"開啟乙個文字檔案,可以寫入檔案,先將檔案長度截為0,如果檔案不存在則先建立之
"a"開啟乙個文字檔案,可以寫入檔案,向已有的檔案尾部追加內容,如果該檔案不存在則先建立之
"r+"
開啟乙個文字檔案,可以進行更新(讀取和寫入)檔案
"w+"
開啟乙個文字檔案,可以進行更新(讀取和寫入)檔案,如果檔案存在則先將其長度截為0,如果檔案不存在則先建立之
"a+"
開啟乙個文字檔案,可以進行更新(讀取和寫入)檔案,如果該檔案存在則先將其長度截為0,如果檔案不存在則先建立之
"rb","wb","ab",
"rb+","wb+","ab+",
"r+b","w+b","a+b"
與前面的模式相似,只是使用二進位制模式而非文字模式開啟檔案
fclose(fp)用於關閉由指標fp指定的檔案。
5>fgets()和 fputs()//偏向於向檔案讀取和輸出字串,但同樣可以選擇從鍵盤讀取和向螢幕輸出
fgets()要接受三個引數,當如下面這樣使用時,其作用和gets()幾乎一樣,不同的是它並不丟棄換行符\n而是讀取並儲存它:
char name[8];
puts("請輸入你的名字:");
fgets(name,8,stdin);//8限定最多讀取7個字元或者讀完乙個換行符為止,stdin表示從鍵盤上讀取資料
fputs()與上面對應,同樣接受三個引數,當如下面這樣使用時,其效果與puts()幾乎一樣,但它不會自動新增換行符\n:
char name=;
fputs(name,6,stdout);//引數6控制輸出字元,stdout表示輸出至螢幕
當它們對檔案進行操作的示例:
char ch [500];
file * fp=fopen("d:\\88.txt","r");
fgets(ch,strlen(ch)+1,fp);//從檔案88.txt讀取並儲存至ch中
fclose(fp);
char ch=;
file * fp=fopen("d:\\88.txt","w");
fputs(ch,strlen(ch),fp);//把ch中的字元輸出至檔案88.txt中
fclose(fp);
fgets()返回值
fputs()返回值》=0表示寫入成功,返回值=-1(eof)表示寫入失敗
6>fscanf()和fprintf()//偏向於操作檔案的、支援格式控制符的輸入輸出函式
fscanf()/ fprintf()的使用與fgets()/fputs()類似,不過前者可以用格式符控制字元格式:
fscanf(char *,%s,stdin);
fprintf(char *,%s,stdout);
fscanf(char *,%s,file *);
fprintf(char *,%s,file *);
7>fread()和fwrite()//檔案的寫入和讀取(二進位制模式)
fread()用於從檔案中讀取資料,fwrite()用於向檔案中寫入資料:
#include#includeint main(void)
if ((fp2 = fopen("d:\\99.txt", "w")) == null)
fread(ch, 1, sizeof(ch), fp1);//把檔案指標fp1指向的檔案中的內容讀取,並存字元陣列ch中
puts(ch);
fclose(fp1);
fwrite(ch, 1, sizeof(ch), fp2);//把字元陣列ch中的內容寫入檔案指標fp2所指的檔案中
fclose(fp2);
system("pause");
return 0;
}
8>fseek()和ftell()
9>fgetpos()和fsetpos()
10>int ungetc(int c,file * fp)
11>int fflush(file * fp)
12>setvbuf()
2 C語言複習 基本輸入輸出函式
基本的輸出輸出函式主要有 getchar putchar printf d n 變數 scanf d xx 1.getchar 收到的不是換行就繼續迴圈,比較實用的判斷 while getchar n 輸入輸出單 字元 getchar putchar 小心,有時候scanf後再加入乙個getchar...
2 C 輸入輸出流的簡介
使用例項 int a cout 請輸入乙個整形數值 endl cin a cout 列印輸入乙個整形數值 a endl int b 100 printf d n b 輸出十進位制的數b 並換行 printf o n b 輸出無符號八進位制的數b 並換行float c 5 3 預設顯示是六位小數 pr...
C常用輸入輸出總結
一 輸入輸出格式 1 整型 scanf d m int scanf ld m long int scanf lld m long long int2 浮點型 1 基本格式 scanf f m float scanf lf m double2 加域寬 includeint main return 0 ...