C-學習筆記2
資料的輸入輸出
C語言沒有自己的輸入/輸出語句,但它提供了豐富的輸入/輸出標準庫函式。由於標準輸入/數出庫函式是在標頭檔案stdio.h中定義的,因此,在使用這些庫函式之前,要用於預編譯命令#include將“標頭檔案”包括到原始檔中:
#include "stdio.h"或#include <stdio.h>
a.字元資料的輸入與輸出
(1).字元輸出
putchar是字元輸出函式,它的功能是在顯示器上輸出單個字元。它在stdio.h標頭檔案中宣告的格式為:
int putchar(int c);
其中引數c為一個整型值,正常結束後返回值為輸出的字元,如果發生錯誤或者檔案結束返回EOF(End of File);c一般為介於0到127的十進位制整數,輸出對應的ASCII碼值得字元。
例如:putchar(65); 輸出的結果為A,因為字元A的ASCII碼對應為65。
但是,由於ASCII數值難於記憶,該函式用法的一般格式為:
putchar(形式引數);
格式中的形式引數可以使字元常量、字元變數或者是表示式。
例如:
putchar('A'); --> A
putchar('x'); --> x
putchar('\101') 101為8進位制的65,輸出結果為A
putchar("\n") 換行
putchar('\t') 輸出Tab
(2).字元輸入
getchar函式是字元輸入函式,它的功能是使用者從鍵盤上輸入一個字元,函式接受這個字元的輸入,它在stdio.h標頭檔案中宣告的格式為:
int getchar(void);
例如:
char c;
c = getchar();
b.格式輸入與輸出
(1).printf函式的基本格式
printf函式是一個標準庫函式,它在標頭檔案stdio.h中宣告的格式如下:
int printf(char*format[,argument]...);
其中,format為格式控制字串,用於指定輸出格式,argument為輸出項,可以有多個,用逗號隔開。
格式控制字串包括兩部分內容:一部分是普通字元或轉義字元,這些字元按原樣輸出,它通常用於在程式執行時給使用者有關提示資訊,或對輸出資訊做有關的註釋或說明;另一部分是格式控制字元,以%開頭,後跟一個或幾個字元,它在格式控制字元中用來佔位,並將在該位置用格式字元確定的格式輸出列表對應的輸出項。
printf的格式控制的完整格式是:
% - 0 m. n l
①%: 表示格式說明的起始符號
②-: 有-表示左對齊輸出,如省略表示右對齊輸出
③0: 有0表示指定空位填0,如省略表示指定空位不填
④m. n: m指域寬,即對應的輸出項在輸出裝置上所佔的字元數。n指精度。用於說明輸出的實型數的小數位數。未指定n時,隱含的精度為n=6位。
⑤l或h: l對整型指long型,對實型指double型。h用於將正行的格式字元修正為short型。
格式字元 | 意義 |
---|---|
d,i | 以十進位制形式輸出帶符號整數(正數不輸出符號) |
u | 以十進位制形式輸出無符號整數 |
o | 以八進位制形式輸出無符號整數(不輸出字首0) |
x,X | 以十六進位制形式輸出無符號整數(不輸出字首Ox),用x則輸出十六進位制數的a~f小寫字母輸出,用X則輸出十六進位制數的A~F大寫字母輸出 |
f | 以小數形式輸出單、雙精度實數,隱含輸出6為小數 |
e,E | 以指數形式輸出單、雙精度實數 |
g,G | 以%f或%e較短的輸出寬度輸出單、雙精度實數,不輸出無意義的0.用G時,若以指數形式輸出,則指數以大寫表示 |
c | 以字元形式輸出,只輸出單個字元 |
s | 輸出字串,直到遇到"\0"。若字串長度超過指定的精度,則自動突破,不會截斷字串 |
%% | 輸出%本身 |
p | 輸出變數的記憶體地址 |
(2).scanf函式的基本格式
格式輸入函式scanf按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中,是一個標準庫函式,它在標頭檔案stdio.h中宣告的格式如下:
int scanf(char*format[,argument]...);
例如:scanf("%d %d %d",&a,&b,&c);
注:在VS2017中,scanf已經不再安全,會顯示error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
在程式最開頭新增巨集
#define _CRT_SECURE_NO_WARNINGS
即可解決