C++中scanf和printf系列函式簡介

棉猴發表於2018-06-12

C++中,scanf系列函式用於輸入,printf系列函式用於輸出。

1 scanf系列函式

常用的scanf系列函式包括scanf()sscanf()fscanf()

1.1 scanf()函式

scanf()函式從標準輸入流stdin中讀取資料,並且將資料寫入到指定的變數中。

int a,b,c;

scanf("%d,%d,%d", &a, &b, &c);

需要注意的是,寫入的指定變數是指標型別。scanf()函式實際上就是讀取鍵盤在控制檯中的輸入。

關於scanf()的詳細用法請參考

《scanf()gets()getline()讀取輸入

《VS2015中使用scanf()不報錯的設定方法

1.2 sscanf()函式

sscanf()函式從字串緩衝區中讀取資料,並將資料儲存到指定的變數中。其格式為

int sscanf(  

   const char *buffer,  

   const char *format [,  

   argument ] ...   

);

其中,引數buffer是儲存資料的緩衝區;format指定了讀取的格式;argument是一個可選的變數,從buffer中讀取的資料儲存在該變數中。

char buf[512];
sscanf("123456", "%s", buf);

此時,buf的值是123456

1.3 fscanf()函式

fscanf()函式從流(stream)中讀取資料,並將資料儲存在指定的變數中。該函式的格式為

int fscanf(   

   FILE *stream,  

   const char *format [,  

   argument ]...   

);

其中,streamFILE結構的指標;format指定了讀取的格式;argument是一個可選的變數,從buffer中讀取的資料儲存在該變數中。

相關連結:

C/C++中,將每個檔案簡單地作為順序位元組流,每個檔案用檔案結束符結束。FILE結構體用來對檔案進行操作,該結構體在stdio.h中定義。

FILE *stream;

char s[80];

fopen_s( &stream, "fscanf.txt", "w+" );

fscanf( stream, "%s", s );

fclose( stream );

以上程式碼的作用是從fscanf.txt檔案中讀取資料,並將資料儲存到s中。

從以上分析可知,scanf()sscanf()fscanf()三個函式都是資料儲存到指定變數中。其區別在於讀取源不同,scanf()函式的讀取源是標準輸入流;sscanf()函式的讀取源是字串緩衝區;fscanf()函式的讀取源是檔案。

2 printf系列函式

常用的scanf系列函式包括printf()sprintf()fprintf()。以上三個函式的主要作用是將資料儲存到指定的目的變數中。其區別在於目的變數不同,printf()函式的目的變數是標準輸出流;sprintf()函式的目的變數是字串緩衝區;fprintf()函式的目的變數是檔案。

相關文章