學習高階c課程中遇到的函式

2021-09-03 06:58:11 字數 1218 閱讀 3460

最近在學習高階c語言,其中有一些函式值得記錄。

首先是輸入輸出相關的函式

int sprintf(char *buffer, const char *format, [ argument] …)

該函式功能:把格式化的資料寫入某個字串緩衝區。

返回值為寫入的字元個數。

如: j = sprintf(buf, "%d ", i);

j 的值即為2;

int snprintf(char *str, size_t size, const char *format, …)

該函式功能:將可變個引數(…)按照format格式化成字串,然後將其複製到str中。(等於說我截斷size長度的字串,塞入str裡)

若成功則返回預寫入的字串長度,若出錯則返回負值。

※與snprintf的返回值不同,sprintf的返回值是成功寫入的字串長度,此處需要謹慎處理!

(1) 如果格式化後的字串長度 < size,則將此字串全部複製到str中,並給其後新增乙個字串結束符(』\0』);

(2) 如果格式化後的字串長度 >= size,則只將其中的(size-1)個字元複製到str中,並給其後新增乙個字串結束符(』\0』),返回值為欲寫入的字串長度。

如:int nlen = snprintf(str,sizeof(str),"%d",123);

int nlen = snprintf(str,3,"%d",123); 得到i = 2;

int sscanf(const char *buffer, const char *format, [ argument ] … );

該函式功能:讀取格式化的字串中的資料。

返回值為成功轉換並分配的字段數;

返回值不包括已讀取但未分配的字段。

返回值為 0 表示沒有分配任何字段。

返回值是eof是否有錯誤或如果在第一次轉換之前到達字串結尾。

如:sscanf(「1 2 3」,"%d %d %d",buf1, buf2, buf3); 成功呼叫返回值為3,即buf1,buf2,buf3均成功轉換。

sscanf(「1 2」,"%d %d %d",buf1, buf2, buf3); 成功呼叫返回值為2,

即只有buf1,buf2成功轉換。

注:sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤(stdin)為輸 入源,前者以固定字串為輸入源。

PB學習中遇到的函式

1 getcurrentdirectory 2 fileopen filename 引數filename string型別,指定要開啟檔案的名稱,其中可以包含路徑 引數filemode filemode列舉型別,可選項,指定檔案開啟方式。有效取值為 linemode 預設值,行模式 streammo...

python學習中遇到的函式

最近在維護公升級工具wana,由於這個工具對效率要求不明顯,所以使用python開發,而此前我對python並沒有太過深入的學習與使用,故這裡將學習過程中遇到的有趣知識點總結如下 enumerate 函式用於將乙個可遍歷的資料物件 如列表 元組或字串 組合為乙個索引序列,同時列出資料和資料下標,一般...

C 學習中遇到的問題

在c 學習中遇到的問題集中在此,若有高人看見希望給出解決辦法,在日後的學習中本人若找到解決辦法,也在此更新!1 如何實現ipconfig all命令的全部功能 region 另類解法 程式如下 system.diagnostics.process p new system.diagnostics.p...