當前位置:首頁 » 編程語言 » c語言初遇庫函數
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言初遇庫函數

發布時間: 2023-06-12 04:57:29

『壹』 c語言中函數的類型有哪些呢

對於C語言中的函數類型,一般可以分為以下兩猛御類:

1. 庫函數(Library Function):也稱為內置函數(Built-in Function),是由C語言提供的、已經封裝好的函數。庫函數通常具有標准化、通用化的特點,包括數學運算、字元串處理、文件操作等方面。例如`printf()`和`scanf()`是C語言中常用的庫函數。

2. 用戶自定義函數(User-Defined Function):也稱為外置函數(External Function),是程序員根據需求自行編寫的函數。用戶自定義函數可以將枝喚某一段需要重復使用的代碼封裝成一個函數,在其他地方調用該函數即可實現相同的功能,起到了復用代碼的作用。在需要多枝搭岩次執行特定任務時,使用自定義函數可以使程序結構更加清晰、易於理解。

『貳』 C語言與C語言庫函數是什麼關系

1、C語言與C語言庫函數的關系就類似於漢字與經典著作的關系。
C語言是一種計算機編程語言,C語言函數庫是由C語言編寫出來的文獻。方便後來者們更加簡單快捷的使用C語言。
2、C語言是一種程序設計的入門語言。由於C語言的語句中沒有提供直接計算sin或cos函數的語句,會造成編寫程序困難;但是函數庫提供了sin和cos函數,可以拿來直接調用。顯示一段文字,我們在C語言中找不到顯示語句,只能使用庫函數printf。
C語言的庫函數並不是C語言本身的一部分,它是由編譯程序根據一般用戶的需要,編制並提供用戶使用的一組程序。C的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。在編寫C語言程序時,使用庫函數,既可以提高程序的運行效率,又可以提高編程的質量。

『叄』 c語言中strlen()怎麼用

函數聲明:extern unsigned int strlen(char *s);

所屬函數庫:<string.h>

功能:返回s所指的字元串的長度,其中字元串必須以』\0』結尾

參數:s為字元串的初始地址

使用舉例:

代碼如下

編譯運行結果

說明:

函數strlen比較容易理解,其功能和sizeof很容易混淆。其中sizeof指的是字元串聲明後佔用的內存長度,它就是一個操作符,不是函數;而strlen則是一個函數,它從第一個位元組開始往後數,直到遇見了』\0』,則停止

第一 string頭文件中的函數strlen 只可以用來測試字元型數組的長度,其他類型不可以

第二 如果要測試int 修改原函數中的參數,會導致數組長度變長(計算機會一直找下去,直到遇到\0)

第三 如果是字元數組,當裡面的字元數少於數組長度時,可以正常輸出用strlen,如果等於數組長度,則會出現問題

函數介紹:

(推薦教程:c語言教程)

strlen()函數用於計算字元串的長度,直到空結束字元,但不包括空結束字元。

語法結構:

size_t strlen(const char *str)

參數說明:

str -- 要計算長度的字元串。

返回值:

該函數返回字元串的長度

『肆』 c語言標准函數庫的介紹

在C語言程序設計里,C 標准函數(C Standard library)是所有目前符合標準的頭文件(head file)的集合,以及常用的函數庫實現程序,例如 I/O輸入輸出和字串符控制。不像 COBOL、Forrian和 PL/I等編程語言,在 C 語言的工作任務里不會包含嵌入的關鍵字,所以幾乎所有的 C 語言程序都是由標准函數庫的函數來創建的。

『伍』 C語言庫是什麼如何得到怎麼用

c語言庫就是前人寫好的一系列C語言代碼。它裡麵包含一些函數,一些功能。例如我們每次都要輸入的#include<stdio.h>,這裡面的stdio.h就是標准輸入輸出庫,它就是C語言的一種庫。

『陸』 什麼是C語言標准函數庫平常用的哪些函數屬於標准函數庫

你會發現,有一些頭文件(比如stdlib.h,stdio.h)每一個編譯器都有,而裡面的函數(如printf,malloc)每一個編譯器都支持。這些函數組成的集合就是標准函數庫。平常用的函數基本都屬於標准函數庫。
ANSI對此是有規定的

『柒』 c語言的圖形函數庫有哪些

圖形和圖像函數包含在graphics.h裡面

(一) 像素函數
56. putpiel() 畫像素點函數
57. getpixel()返回像素色函數
(二) 直線和線型函數
58. line() 畫線函數
59. lineto() 畫線函數
60. linerel() 相對畫線函數
61. setlinestyle() 設置線型函數
62. getlinesettings() 獲取線型設置函數
63. setwritemode() 設置畫線模式函數
(三)、多邊形函數
64. rectangle() 畫矩形函數
65. bar() 畫條函數
66. bar3d() 畫條塊函數
67. drawpoly() 畫多邊形函數
(四)、 圓、弧和曲線函數
68. getaspectratio()獲取縱橫比函數
69. circle()畫圓函數
70. arc() 畫圓弧函數
71. ellipse()畫橢圓弧函數
72. fillellipse() 畫橢圓區函數
73. pieslice() 畫扇區函數
74. sector() 畫橢圓扇區函數
75. getarccoords()獲取圓弧坐標函數
(五)、 填充函數
76. setfillstyle() 設置填充圖樣和顏色函數
77. setfillpattern() 設置用戶圖樣函數
78. floodfill() 填充閉域函數
79. fillpoly() 填充多邊形函數
80. getfillsettings() 獲取填充設置函數
81. getfillpattern() 獲取用戶圖樣設置函數
(六)、圖像函數
82. imagesize() 圖像存儲大小函數
83. getimage() 保存圖像函數
84. putimage() 輸出圖像函數

四、圖形和圖像函數
對許多圖形應用程序,直線和曲線是非常有用的。但對有些圖形只能靠操作單個像素才能畫出。當然如果沒有畫像素的功能,就無法操作直線和曲線的函數。而且通過大規模使用像素功能,整個圖形就可以保存、寫、擦除和與屏幕上的原有圖形進行疊加。
(一) 像素函數

56. putpixel() 畫像素點函數
功能: 函數putpixel() 在圖形模式下屏幕上畫一個像素點。
用法: 函數調用方式為void putpixel(int x,int y,int color);
說明: 參數x,y為像素點的坐標,color是該像素點的顏色,它可以是顏色符號名,也可以是整型色彩值。
此函數相應的頭文件是graphics.h
返回值: 無
例: 在屏幕上(6,8)處畫一個紅色像素點:
putpixel(6,8,RED);

57. getpixel()返回像素色函數
功能: 函數getpixel()返回像素點顏色值。
用法: 該函數調用方式為int getpixel(int x,int y);
說明: 參數x,y為像素點坐標。
函數的返回值可以不反映實際彩色值,這取決於調色板的設置情況(參見setpalette()函數)。
這個函數相應的頭文件為graphics.h
返回值: 返回一個像素點色彩值。
例: 把屏幕上(8,6)點的像素顏色值賦給變數color。
color=getpixel(8,6);

『捌』 2017年計算機二級C語言考點解析:函數

7.1 庫函數的正確調用
1.C語言提供了豐富的庫函數,包括常用數學函數、對字元和字元串處理函數、輸入輸出處理函數等。在調用庫函數時要注意以下幾點:

(1)調用C語言標准庫函數時必須在源程序中用include命令,include命令的格式是:

#include″頭文件名″

include命令必須以#號開頭,系統提供的頭文件名都以.h作為後綴,頭文件名用一對雙引號″″或一對尖括弧〈〉括起來。

(2)標准庫函數的調用形式:

函數名(參數表)

2.在C語言中庫函數的調用可以以兩種形式出現:出現在表達式中;作為獨立的語句完成某種操作。

7.2 函數的定義方法

1.C語言函數的一般形式為:

函數返回值的類型名 函數名(類型名 形參1,類型名 形參2,…)

{

說明部分

語句部分

}

定義的第一行是函數的首部,{}中的是函數體。

2.在老的C語言版本中,函數的首部用以下形式:

函數返回值的類型名 函數名(形參1,形參2…)

形參類型說明;

新的ANSI標准C兼容這種形式的函數首部說明。

3.函數名和形參名是由用戶命名的標識符。在同一程序中,函數名必須。形式參數名只要在同一函數中即可,可以與函數中的變數同名。

4.C語言規定不能在一個函數內部再定義函數。

5.若在函數的首部省略了函數返回值的類型名,把函數的首部寫成:

函數名(類型名 形參1,類型名 形參2,…)

則C默認函數返回值的類型為int類型。

6.當沒有形參時,函數名後面的一對圓括弧不能省略。

7.3 函數的類型和返回值

1.函數的類型由函數定義中的函數返回值的類型名確定,函數的類型可以是任何簡單類型,如整型、字元型、指針型、雙精度型等,它指出了函數返回值的具體類型。當函數返回的是整型值時,可以省略函數類型名。當函數只完成特定的操作而沒有或不需要返回值時,可用類型名void(空類型)。

2.函數返回值就是return語句中表達式的值。當程序執行到return語句時,猛空程序的流程就返回到調用該函數的地方(通常稱為退出調用函數),並空胡帶回函數值。

7.4 形式參數與實際參數,參數值的傳遞

1.在函數定義中,出現的參數名稱為形參(形式參數),在調用函數時,使用的參數值稱為實參(實際參數)。

2.調用函數和被調用函數之間的參數值的傳遞是″按值″進行的,即數據只能從實參單向傳遞給形參。也就是說,當簡單變數作為實參時,用戶不能在函數中改變對應實參的值。

7.5 函數的正確調用(嵌套調用,遞歸調用)

1.調用函數時,函數名必須與被調用的函數名字完全一樣。實參的個數與類型和形參的個數與類型一致。

2.C語言規定:函數必須先定義,後調用,也就是被調用函數必須在調用之前加以說明,或被調用函數整個放在調用函數之前。但對返回值類型為int或char類型的函數可以放在調用函數的後面。

3.C語言中函數定義都是互相平行、獨立的,C語言不允許嵌套定義函數,但允許嵌套調用函數,也就是說,在調用一個函數的過程中,又調用另一個函數。

4.在C程序中,調用一個函數的過程中又出現直接或間接地調用該函數本身,稱為函數的遞歸調用。

5.遞歸調用函數是C語言的特點之一,有時遞歸調用會使求解的問題變得更簡單明了。

7.6 局部變數和全局變數

1.局部變數

在一函數內部所定義的變數稱為局部變數,局部變數只在本函數范圍內有效。

注意:

①不同函數可以使用相同的局部變數名,它們將代表不同的對象,互不幹擾;

②一個函數的形參也為局部變數;

③在函數內部,復合語句也可定義變數,這些變數也為局部變數,只在此復合語句中有效。

2.全局變數

在C語言中,程序的編譯單位是源程序文件,一個源程序文件中包含一個或多個函數。在函數之外所定義枝虧瞎的變數稱為外部變數,也稱為全局變數。全局變數可以被包含它的源程序文件中的其他函數所共用,作用域為從定義變數的位置開始到源程序文件結束,全局變數可以增加函數之間數據的聯系。

注意:當在同一個源程序文件中,全局變數與局部變數同名時,在局部變數的作用范圍內,全局變數不起作用,局部變數起作用。

7.7 變數的存儲類別、作用域及生存期

1.變數的存儲類別

在C語言中,有兩類存儲類別:自動類別及靜態類別。

有4個與兩種存儲類別有關的說明符:auto(自動)、register(寄存器)、static(靜態)和extern(外部),這些說明符一般與類型說明一起出現,一般放在類型名的左邊,例如:

auto long I,j;

也可寫成:

long auto I,j;

(1)自動變數:自動變數是C程序中使用最多的一種變數,這種變數的建立和撤消都是在系統中自動進行的。

格式:[auto]數據類型 變數名[=初始化表達式],…;

上面的說明格式中,方括弧中是可省略的部分,auto為自動類別標識符,若省略auto,系統預設的存儲類別也為自動類別。

注意:函數的形參也為自動類別,在定義時不必加存儲類別標識符。

(2)寄存器變數:寄存器變數與自動變數的性質相同,其區別只在於存儲的位置不同,寄存器變數存儲在CPU的寄存器中,而自動變數存儲在內存中的動態存儲區,寄存器變數的存取速度要快些。

格式:register數據類型,變數名[=初始化表達式],…;

上面的說明格式中,register為寄存器變數的存儲類別標識符。

說明:

①CPU中寄存器的數目是有限的,因此只能把少數的變數說明為寄存器變數;

②寄存器變數是存放在寄存器中的,而不是存放於內存中,所以,寄存器變數無地址;

③寄存器變數的說明應盡量放在靠近要使用的地方,用完後盡快釋放,這樣可提高使用效率。

(3)靜態變數:靜態類別變數的存儲空間在程序的整個運行期間是固定的。

格式:static數據類型 變數名[=初始化表達式],…;

在上面的說明格式中,static為靜態變數的存儲類別標識符。

靜態變數的初始化在編譯時進行,定義時可用常量或表達式進行顯式初始化。對於沒有初始化的靜態變數,自動初始化為0(整型)或0.0(實型)。

注意:靜態變數具有可繼承性,這與自動變數有所不同。

(4)外部變數:使用extern可使外部變數使用范圍擴充到需要使用它的函數。外部變數可作顯式的初始化,若不作初始化,系統將自動地初始化為0或0.0。

格式:[extern]數據類型,變數名[=初始化表達式],…;

上面的說明格式中,extern使外部變數的作用范圍擴大到其他源程序文件中。

注意:局部變數既可以說明為自動類別,也可以說明為靜態類別;全局變數只能說明為靜態類別。

2.變數的作用域及生存期

在C語言中,變數必須先說明後使用,在程序中一個已定義的變數的使用范圍就是此變數的作用域。經過賦值的變數在程序運行期間能保持其值的時間范圍為該變數的生存期。

(1)局部變數的使用域及生存期

①自動變數的使用域及生存期

自動變數的存儲單元被分配在內存的動態存儲區,每當進函數體(或復合語句)時,系統自動為自動變數分配存儲單元,退出時自動釋放這些存儲單元。自動變數的作用域為從定義的位置起,到函數體(或復合語句)結束為止。

自動變數在進入到定義它們的函數體(或復合語句)時生成,在退出所在的函數體(或復合語句)時消失,這就是自動變數的生存期。

使用自動變數的優點是使各函數之間造成信息分隔,不同函數中使用同名變數時不會相互影響。

②寄存器變數的使用域及生存期

寄存器變數的使用域及生存期與自動變數相同。

③靜態存儲類別的局部變數

在函數體(或復合語句)內部,用static說明的變數靜態存儲類別的局部變數,這種變數的作用域與自動(或寄存器)變數的作用域相同,但是生存期有所不同。

在整個程序運行期間,靜態局部變數在內存的靜態存儲區中占據著永久的存儲單元,甚至在退出函數後下次再進入函數時,靜態局部變數仍使用原來的存儲單元。由於不釋放存儲單元,所以這些存儲單元中的值將會被保留下來。靜態局部變數的生存期將一直延長到程序運行結束。

靜態局部變數適合於在函數調用之間必須保留局部變數值的獨立變數。

『玖』 c語言中怎麼調用函數

函數分為庫函數和自定義函數,在調用庫函數時只要標明頭文件(所謂頭文件就是一個東西,裡麵包括了一些函數各聲明之類的,當你要調用它中的函數時就就得先向程序說明你要調用這個文件里的函數,否則有有侵權行為哦)可以在主調函數中調用這個頭文件里的所有函數了,例如頭文件為#include<stdio.h>你就可以在主調函數中調用這個頭文件里的函數:
main
{ printf("haha");/*這時main函數為主調函數,printf為被調函數*/
}
調用自定義函數時其實和調用庫函數一樣的,只不過這個函數是你自己定義的,再如:
main
{ void f();/*聲明 f()函數*/
f(); /*調用f()函數*/
}
f()
{
printf("haha");/*f()函數調用庫函數*/
}

『拾』 求C語言所有的簡單函數!

庫函數並不是C語言的一部分,它是由編譯程序根據一般用戶的需要編制並提供用戶使用的一組程序。每一種C編譯系統都提供了一批庫函數,不同的編譯系統所提供的庫函數的數目和函數名以及函數功能是不完全相同的。ANSIC標准提出了一批建議提供的標准庫函數。它包括了目前多數C編譯系統所提供的庫函數,但也有一些是某些C編譯系統未曾實現的。考慮到通用性,本書列出Turbo C 2.0版提供的部分常用庫函數。
由於Turbo C庫函數的種類和數目很多(例如:還有屏幕和圖形函數、時間日期函數、與本系統有關的函數等,每一類函數又包括各種功能的函數),限於篇幅,本附錄不能全部介紹,只從教學需要的角度列出最基本的。讀者在編制c程序時可能要用到更多的函數,請查閱有關的Turbo C庫函數手冊。
(1)數學函數
使用數學函數時,應該在源文件中使用命令:
#include″math.h″
函數名 函數與形參類型 功 能 返回值
acos double acos(x)
double x 計算cos-1(x)的值
-1<=x<=1 計算結果
asin double asin(x)
double x 計算sin-1(x)的值
-1<=x<=1 計算結果
atan double atan(x)
double x 計算tan-1(x)的值 計算結果
atan2 double atan2(x,y)
double x,y 計算tan-1(x/y)的值 計算結果
cos double cos(x)
double x 計算cos(x)的值
x的單位為弧度 計算結果
cosh double cosh(x)
double x 計算x的雙曲餘弦cosh(x)的值 計算結果
exp double exp(x)
double x 求ex的值 計算結果
fabs double fabs(x)
double x 求x的絕對值 計算結果
floor double floor(x)
double x 求出不大於x的最大整數 該整數的雙精度實數
fmod double fmod(x,y)
double x,y 求整除x/y的余數 返回余數的雙精度實數
frexp double frexp(val,eptr)
double val
int *eptr 把雙精度數val分解成數字部分(尾數)和以2為底的指數,即val=x*2n,n存放在eptr指向的變數中 數字部分x
0.5<=x<1
log double log(x)
double x 求logex即lnx 計算結果
log10 double log10(x)
double x 求log10x 計算結果
modf double modf(val,iptr)
double val
int *iptr 把雙精度數val分解成數字部分和小數部分,把整數部分存放在ptr指向的變數中 val的小數部分
pow double pow(x,y)
double x,y 求xy的值 計算結果
sin double sin(x)
double x 求sin(x)的值
x的單位為弧度 計算結果
sinh double sinh(x)
double x 計算x的雙曲正弦函數sinh(x)的值 計算結果
sqrt double sqrt (x)
double x 計算√x,x≧0 計算結果
tan double tan(x)
double x 計算tan(x)的值
x的單位為弧度 計算結果
tanh double tanh(x)
double x 計算x的雙曲正切函數tanh(x)的值 計算結果
------------------------------------------------------------------------------------------------------------------------------
(2)字元函數
在使用字元函數時,因該在源文件中使用命令:
#include「ctype.h」
函數名 函數和形參類型 功能 返回值
isalnum int isalnum(ch)
int ch 檢查ch是否字母或數字 是字母或數字返回1;否則返回0
isalpha int isalpha(ch)
int ch 檢查ch是否字母 是字母返回1;否則返回0
iscntrl int iscntrl(ch)
int ch 檢查ch是否控制字元(其ASCⅡ碼在0和0xlF之間) 是控制字元返回1;否則返回0
isdigit int isdigit(ch)
int ch 檢查ch是否數字 是數字返回1;否則返回0
isgraph int isgraph(ch)
int ch 檢查ch是否是可列印字元(其ASCⅡ碼在0x21和0x7e之間),不包括空格 是可列印字元返回1;否則返回0
islower int islower(ch)
int ch 檢查ch是否是小寫字母
(a~z) 是小字母返回1;否則返回0
isprint int isprint(ch)
int ch 檢查ch是否是可列印字元(其ASCⅡ碼在0x21和0x7e之間),不包括空格 是可列印字元返回1;否則返回0
ispunct int ispunct(ch)
int ch 檢查ch是否是標點字元(不包括空格)即除字母、數字和空格以外的所有可列印字元 是標點返回1;否則返回0
isspace int isspace(ch)
int ch 檢查ch是否空格、跳格符(製表符)或換行符 是,返回1;否則返回0
issupper int isalsupper(ch)
int ch 檢查ch是否大寫字母
(A~Z) 是大寫字母返回1;否則返回0
isxdigit int isxdigit(ch)
int ch 檢查ch是否一個16進制數字
(即0~9,或A到F,a~f) 是,返回1;否則返回0
tolower int tolower(ch)
int ch 將ch字元轉換為小寫字母 返回ch對應的小寫字母
toupper int toupper(ch)
int ch 將ch字元轉換為大寫字母 返回ch對應的大寫字母
-----------------------------------------------------------------------------------------------------------------------
(3)字元串函數
使用字元串中函數時,應該在源文件中使用命令:
#include「string.h」
函數名 函數和形參類型 功能 返回值
memchr void memchr(buf,ch,count)
void *buf;charch;
unsigned int count; 在buf的前count個字元里搜索字元ch首次出現的位置 返回指向buf中ch的第一次出現的位置指針;若沒有找到ch,返回NULL
memcmp int memcmp(buf1,buf2,count)
void *buf1,*buf2;
unsigned int count; 按字典順序比較由buf1和buf2指向的數組的前count個字元 buf1<buf2,為負數
buf1=buf2,返回0
buf1>buf2,為正數
memcpy void *memcpy(to,from,count)
void *to,*from;
unsigned int count; 將from指向的數組中的前count個字元拷貝到to指向的數組中。From和to指向的數組不允許重疊 返回指向to的指針
memove void *memove(to,from,count)
void *to,*from;
unsigned int count; 將from指向的數組中的前count個字元拷貝到to指向的數組中。From和to指向的數組不允許重疊 返回指向to的指針
memset void *memset(buf,ch,count)
void *buf;char ch;
unsigned int count; 將字元ch拷貝到buf指向的數組前count個字元中。 返回buf
strcat char *strcat(str1,str2)
char *str1,*str2; 把字元str2接到str1後面,取消原來str1最後面的串結束符`\0` 返回str1
strchr char *strchr(str1,ch)
char *str;
int ch; 找出str指向的字元串中第一次出現字元ch的位置 返回指向該位置的指針,如找不到,則應返回NULL
strcmp int *strcmp(str1,str2)
char *str1,*str2; 比較字元串str1和str2 str1<str2,為負數
str1=str2,返回0
str1>str2,為正數
strcpy char *strcpy(str1,str2)
char *str1,*str2; 把str2指向的字元串拷貝到str1中去 返回str1
strlen unsigned intstrlen(str)
char *str; 統計字元串str中字元的個數(不包括終止符`\0`) 返回字元個數
strncat char *strncat(str1,str2,count)
char *str1,*str2;
unsigned int count; 把字元串str2指向的字元串中最多count個字元連到串str1後面,並以null結尾 返回str1
strncmp int strncmp(str1,str2,count)
char *str1,*str2;
unsigned int count; 比較字元串str1和str2中至多前count個字元 str1<str2,為負數
str1=str2,返回0
str1>str2,為正數
strncpy char *strncpy(str1,str2,count)
char *str1,*str2;
unsigned int count; 把str2指向的字元串中最多前count個字元拷貝到串str1中去 返回str1
strnset void *setnset(buf,ch,count)
char *buf;char ch;
unsigned int count; 將字元ch拷貝到buf指向的數組前count個字元中。 返回buf
strset void *setnset(buf,ch)
void *buf;char ch; 將buf所指向的字元串中的全部字元都變為字元ch 返回buf
strstr char *strstr(str1,str2)
char *str1,*str2; 尋找str2指向的字元串在str1指向的字元串中首次出現的位置 返回str2指向的字元串首次出向的地址。否則返回NULL
-----------------------------------------------------------------------------------------------------------------------------
(4)輸入輸出函數
在使用輸入輸出函數時,應該在源文件中使用命令:
#include「stdio.h」
函數名 函數和形參類型 功能 返回值
clearerr void clearer(fp)
FILE *fp 清除文件指針錯誤指示器 無
close int close(fp)
int fp 關閉文件(非ANSI標准) 關閉成功返回0,不成功返回-1
creat int creat(filename,mode)
char *filename;
int mode 以mode所指定的方式建立文件。(非ANSI標准) 成功返回正數,
否則返回-1
eof int eof(fp)
int fp 判斷fp所指的文件是否結束 文件結束返回1,
否則返回0
fclose int fclose(fp)
FILE *fp 關閉fp所指的文件,釋放文件緩沖區 關閉成功返回0,不成功返回非0
feof int feof(fp)
FILE *fp 檢查文件是否結束 文件結束返回非0,否則返回0
ferror int ferror(fp)
FILE *fp 測試fp所指的文件是否有錯誤 無錯返回0;
否則返回非0
fflush int fflush(fp)
FILE *fp 將fp所指的文件的全部控制信息和數據存檔 存檔正確返回0;
否則返回非0
fgets char *fgets(buf,n,fp) char *buf;int n;
FILE *fp 從fp所指的文件讀取一個長度為(n-1)的字元串,存入起始地址為buf的空間 返回地址buf;若遇文件結束或出錯則返回EOF
fgetc int fgetc(fp)
FILE *fp 從fp所指的文件中取得下一個字元 返回所得到的字元;出錯返回EOF
fopen FILE *fopen(filename,mode)
char *filename,*mode 以mode指定的方式打開名為filename的文件 成功,則返回一個文件指針;否則返回0
fprintf int fprintf(fp,format,args,…)
FILE *fp;char *format 把args的值以format指定的格式輸出到fp所指的文件中 實際輸出的字元數
fputc int fputc(ch,fp)
char ch;FILE *fp 將字元ch輸出到fp所指的文件中 成功則返回該字元;出錯返回EOF
fputs int fputs(str,fp)
char str;FILE *fp 將str指定的字元串輸出到fp所指的文件中 成功則返回0;出錯返回EOF
fread int fread(pt,size,n,fp) char *pt;unsigned size,n;FILE *fp 從fp所指定文件中讀取長度為size的n個數據項,存到pt所指向的內存區 返回所讀的數據項個數,若文件結束或出錯返回0
fscanf int fscanf(fp,format,args,…)
FILE *fp;char *format 從fp指定的文件中按給定的format格式將讀入的數據送到args所指向的內存變數中(args是指針) 以輸入的數據個數
fseek int fseek(fp,offset,base)
FILE *fp;long offset;int base 將fp指定的文件的位置指針移到base所指出的位置為基準、以offset為位移量的位置 返回當前位置;否則,返回-1
siell FILE *fp;
long ftell(fp); 返回fp所指定的文件中的讀寫位置 返迴文件中的讀寫位置;否則,返回0
fwrite int fwrite(ptr,size,n,fp) char *ptr;unsigned size,n;FILE *fp 把ptr所指向的n*size個位元組輸出到fp所指向的文件中 寫到fp文件中的數據項的個數
getc int getc(fp)
FILE *fp; 從fp所指向的文件中的讀出下一個字元 返回讀出的字元;若文件出錯或結束返回EOF
getchar int getchat() 從標准輸入設備中讀取下一個字元 返回字元;若文件出錯或結束返回-1
gets char *gets(str)
char *str 從標准輸入設備中讀取字元串存入str指向的數組 成功返回str,否則返回NULL
open int open(filename,mode) char *filename;
int mode 以mode指定的方式打開已存在的名為filename的文件
(非ANSI標准) 返迴文件號(正數);如打開失敗返回-1
printf int printf(format,args,
…)
char *format 在format指定的字元串的控制下,將輸出列表args的指輸出到標准設備 輸出字元的個數;若出錯返回負數
prtc int prtc(ch,fp)
int ch;FILE *fp; 把一個字元ch輸出到fp所值的文件中 輸出字元ch;若出錯返回EOF
putchar int putchar(ch)
char ch; 把字元ch輸出到fp標准輸出設備 返回換行符;若失敗返回EOF
puts int puts(str)
char *str; 把str指向的字元串輸出到標准輸出設備;將`\0`轉換為回車行 返回換行符;若失敗返回EOF
putw int putw(w,fp)
int i;
FILE *fp; 將一個整數i(即一個字)寫到fp所指的文件中
(非ANSI標准) 返回讀出的字元;若文件出錯或結束返回EOF
read int read(fd,buf,count) int fd;char *buf;
unsigned int count; 從文件號fp所指定文件中讀count個位元組到由buf知識的緩沖區(非ANSI標准) 返回真正讀出的位元組個數,如文件結束返回0,出錯返回-1
remove int remove(fname)
char *fname; 刪除以fname為文件名的文件 成功返回0;出錯返回-1
rename int remove(oname,nname)
char *oname,*nname; 把oname所指的文件名改為由nname所指的文件名 成功返回0;出錯返回-1
rewind void rewind(fp)
FILE *fp; 將fp指定的文件指針置於文件頭,並清除文件結束標志和錯誤標志 無
scanf int scanf(format,args,
…)
char *format 從標准輸入設備按format指示的格式字元串規定的格式,輸入數據給args所指示的單元。args為指針 讀入並賦給args數據個數。如文件結束返回EOF;若出錯返回0
write int write(fd,buf,count) int fd;char *buf;
unsigned count; 叢buf指示的緩沖區輸出count個字元到fd所指的文件中(非ANSI標准) 返回實際寫入的位元組數,如出錯返回-1
------------------------------------------------------------------------------------------------------------------------------
(5)動態存儲分配函數
在使用動態存儲分配函數時,應該在源文件中使用命令:
#include「stdlib.h」
函數名 函數和形參類型 功能 返回值
callloc void *calloc(n,size)
unsigned n;
unsigned size; 分配n個數據項的內存連續空間,每個數據項的大小為size 分配內存單元的起始地址。如不成功,返回0
free void free(p)
void *p; 釋放p所指內存區 無
malloc void *malloc(size)
unsigned SIZE; 分配size位元組的內存區 所分配的內存區地址,如內存不夠,返回0
realloc void *reallod(p,size)
void *p;
unsigned size; 將p所指的以分配的內存區的大小改為size。Size可以比原來分配的空間大或小 返回指向該內存區的指針。若重新分配失敗,返回NULL
-------------------------------------------------------------------------------------------------------------------------------
(6)其他函數
「其他函數」是C語言的標准庫函數,由於不便歸入某一類,所以單獨列出。使用這寫函數時,應該在源文件中使用命令:
#include「stdlib.h」
函數名 函數和形參類型 功能 返回值
abs int abs(num)
int num 計算整數num的絕對值 返回計算結果
atof double atof(str)
char *str 將str指向的字元串轉換為一個double型的值 返回雙精度計算結果
atoi int atoi(str)
char *str 將str指向的字元串轉換為一個int型的值 返回轉換結果
atol long atol(str)
char *str 將str指向的字元串轉換為一個long型的值 返回轉換結果
exit void exit(status)
int status; 中止程序運行。將status的值返回調用的過程 無
itoa char *itoa(n,str,radix)
int n,radix;
char *str 將整數n的值按照radix進制轉換為等價的字元串,並將結果存入str指向的字元串中 返回一個指向str的指針
labs long labs(num)
long num 計算c整數num的絕對值 返回計算結果
ltoa char *ltoa(n,str,radix)
long int n;int radix;
char *str; 將長整數n的值按照radix進制轉換為等價的字元串,並將結果存入str指向的字元串 返回一個指向str的指針
rand int rand() 產生0到RAND_MAX之間的偽隨機數。RAND_MAX在頭文件中定義 返回一個偽隨機(整)數
random int random(num)
int num; 產生0到num之間的隨機數。 返回一個隨機(整)數
rand_omize void randomize() 初始化隨機函數,使用是包括頭文件time.h。
strtod double strtod(start,end)
char *start;
char **end 將start指向的數字字元串轉換成double,直到出現不能轉換為浮點的字元為止,剩餘的字元串符給指針end
*HUGE_VAL是turboC在頭文件math.H中定義的數學函數溢出標志值 返回轉換結果。若為轉換則返回0。若轉換出錯返回HUGE_VAL表示上溢,或返回-HUGE_VAL表示下溢
strtol Long int strtol(start,end,radix)
char *start;
char **end;
int radix; 將start指向的數字字元串轉換成long,直到出現不能轉換為長整形數的字元為止,剩餘的字元串符給指針end。
轉換時,數字的進制由radix
確定。
*LONG_MAX是turboC在頭文件limits.h中定義的long型可表示的最大值 返回轉換結果。若為轉換則返回0。若轉換出錯返回LONG_MAX表示上溢,或返回-LONG_MAX表示下溢
system int system(str)
char *str; 將str指向的字元串作為命令傳遞給DOS的命令處理器 返回所執行命令的退出狀態