首页
/
每日頭條
/
科技
/
c語言stdio.h包括什麼
c語言stdio.h包括什麼
更新时间:2024-11-27 21:51:25

c語言stdio.h包括什麼(C語言頭文件stdio.h)1

stdio.h 幾乎可以說是每一個 C 語言源代碼中都要引用的一個文件,其中定義了許多常用的函數,如輸入輸出函數、文件相關的函數等。

下面介紹 stdio.h 中定義的基本輸入輸出函數。

1. 格式化輸入輸出

第一個出場的是用得最多的一對輸入輸出函數。

咱就來看一下這兩個函數在 stdio.h 文件中是如何定義的?

// 輸入函數 int scanf(const char* __format, ...); // 輸出函數 int printf(const char* __format, ...);

這兩個函數定義的參數都有兩個,第一個是字符指針常量,其實也就是字符串,是兩個函數都必須要具備的參數。

後面的三個點,名為可變參數。不限制參數個數(0個及以上)、參數類型。

#include<stdio.h> int main() { int a; scanf("%d", &a); return 0; }

在 scanf 函數的字符串裡,可以是格式字符、普通字符、空白字符,而轉義字符在其中會失去它的轉義功能,成為一個普通字符。

當字符串中每有一個格式符号,相應後面的可變參數列表中就要有一個變量,一一對應。如果不附上變量,就會産生報錯。

變量如果是基本數據類型的,如整型、浮點型、字符型的,則要在變量前面加上一個尋址運算符(&),才能将數據傳遞給相應的變量。

同時需要注意的是,scanf 函數的可變參數列表隻能傳入變量,而不是能是常量、表達式等。

#include<stdio.h> int main() { int a=3; printf("輸出數字:%d\n", a); return 0; }

printf 函數中,字符串中可以是任意字符,另外轉義符号(如 \n、\t 等)不會被轉換為普通字符。

和 scanf 函數不同的是,該函數的可變參數列表沒有強制要求有多少個格式符号,就要填寫變量,編譯是不會發生錯誤,也會正常運行。

不過不建議這麼做,因為沒有意義,其次運行後編譯器會随機安排一個垃圾值,獲得預期外的結果。

且 printf 函數的可變參數列既可以是變量,也可以是常數、表達式。

2. 單字符輸入輸出

第二組輸入輸出函數,getchar 和 putchar。

// getchar int getchar(void); // putchat int putchar(int char);

getchar 函數是沒有參數的。每一次隻能接受一個字符,即是輸入一連串的字符,也隻會接收第一個字符,而且字符必須還是 ASCII 碼表上的字符。如果輸入的是一個漢字,那麼是不會被接收的。

putchar 函數是有參數的,傳入的參數隻能是整數類型或者字符類型。其中整數隻有在 0-255 之間才能輸出字符,其他的是無法在屏幕上顯示結果。

#include<stdio.h> int main() { char c = getchar(); putchar(c); return 0; }

輸入輸出:

c語言stdio.h包括什麼(C語言頭文件stdio.h)2

3. 字符串輸入輸出

顧名思義,這一組函數用于字符串的輸入和輸出。

// gets char* gets(char *); // puts int puts(const char *);

gets 函數有一個參數,可以是字符指針變量或者字符數組變量。

puts 函數也有一個參數,可以是字符指針變量、字符數組,也可以是字符指針常量。

當傳給 gets 函數是一個字符指針的時候,需要對其進行初始化。

#include<stdio.h> int main() { char str[10]="\0"; char *string = str; gets(string); puts(string); return 0; }

輸入輸出:

c語言stdio.h包括什麼(C語言頭文件stdio.h)3

但需要注意的是,輸入的字符不能大于定義的數組長度,否則就會造成内存溢出,産生異常。

c語言stdio.h包括什麼(C語言頭文件stdio.h)4

4. 附錄

格式字符:

c語言stdio.h包括什麼(C語言頭文件stdio.h)5

轉義字符:

c語言stdio.h包括什麼(C語言頭文件stdio.h)6

總結

關于 C 語言常用的輸入輸出函數就介紹到這結束了。如果本篇文章對您有所幫助,點個贊支持一下。

如有發現文中有錯誤或者不恰當的地方,歡迎在評論區留言讨論。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
手機連自己家的網絡超時怎麼辦
手機連自己家的網絡超時怎麼辦
目前,手機客戶端上網數量已經遠遠超出PC端上網。手機上網确實方便,不過,也有“難為”你的時候。小編經常遇到這樣的情況:手機網絡連接明明沒有任何問題,大多數應用可以上網,但是個别軟件卻無法登陸。比如,想登陸QQ,卻提示:“連接超時,請檢查網絡...
2024-11-27
獨立顯卡和集成顯卡有什麼區别
獨立顯卡和集成顯卡有什麼區别
電腦的顯卡分為獨立顯卡和集成顯卡,但是你知道什麼是獨立顯卡,什麼是集成顯卡嗎?獨立顯卡和集成顯卡的區别?下面就讓我們一起來看看吧!1、集成顯卡集成顯卡顧名思意,是和主闆集成在一起的。獨立顯示是插在主闆插槽裡。因為現在電腦越來越清晰,也标志着...
2024-11-27
灌籃高手4k超清壁紙手機
灌籃高手4k超清壁紙手機
,
2024-11-27
雲計算技術應用專業就業方向
雲計算技術應用專業就業方向
首先,從行業領域的發展前景來看,雲計算相關人才的需求量還是比較大的,随着雲計算技術體系的逐漸成熟,未來在雲計算廣泛落地的過程中,行業領域會釋放出大量的技能型人才需求,而這正是雲計算技術與應用專業的人才培養目标。從這個角度來看,雲計算技術與應...
2024-11-27
榮耀9i拆底屏方法
榮耀9i拆底屏方法
今天收到一部榮耀9i外屏碎的手機,這個之前應該換過一次外屏,又碎了直接拆機,和大部分華為手機一樣,後蓋是玻璃的,與中框用膠粘起來的,加熱,拆開後蓋還好,并不需要拆電池,華為和榮耀系列的電池太難拆了,沒有易撕膠,還用大量膠粘起來,每次拆電池都...
2024-11-27
Copyright 2023-2024 - www.tftnews.com All Rights Reserved