日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言输入与输出库函数#includestdio.h

發(fā)布時(shí)間:2024/1/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言输入与输出库函数#includestdio.h 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

last modified: 2010-05-28

輸入與輸出<stdio.h>

?

頭文件<stdio.h>定義了用于輸入和輸出的函數(shù)、類型和宏。最重要的類型是用于聲明文件指針的FILE。另外兩個(gè)常用的類型是size_t和fpos_t,size_t是由運(yùn)算符sizeof產(chǎn)生的無符號整類型;fpos_t類型定義能夠唯一說明文件中的每個(gè)位置的對象。由頭部定義的最有用的宏是EOF,其值代表文件的結(jié)尾。

1.1 文件操作

?

1.1.1 fopen

?

#include <stdio.h> FILE *fopen(const char *filename, const char *mode); 返回:成功為FILE指針,失敗為NULL

打開以filename所指內(nèi)容為名字的文件,返回與之關(guān)聯(lián)的流。

mode決定打開的方式,可選值如下:

"r"

打開文本文件用于讀

"w"

創(chuàng)建文本文件用于寫,并刪除已存在的內(nèi)容(如果有的話)

"a"

添加;打開或創(chuàng)建文本文件用于在文件末尾寫

"rb"

打開二進(jìn)制文件用于讀

"wb"

創(chuàng)建二進(jìn)制文件用于寫,并刪除已存在的內(nèi)容(如果有的話)

"ab"

添加;打開或創(chuàng)建二進(jìn)制文件用于在文件末尾寫

"r+"

打開文本文件用于更新(即讀和寫)

"w+"

創(chuàng)建文本文件用于更新,并刪除已存在的內(nèi)容(如果有的話)

"a+"

添加;打開或創(chuàng)建文本文件用于更新和在文件末尾寫

"rb+"或"r+b"

打開二進(jìn)制文件用于更新(即讀和寫)

"wb+"或"w+b"

創(chuàng)建二進(jìn)制文件用于更新,并刪除已存在的內(nèi)容(如果有的話)

"ab+"或"a+b"

添加;打開或創(chuàng)建二進(jìn)制文件用于更新和在文件末尾寫

后六種方式允許對同一文件進(jìn)行讀和寫,要注意的是,在寫操作和讀操作的交替過程中,必須調(diào)用fflush()或文件定位函數(shù)如fseek()、fsetpos()、rewind()等。

文件名filename的長度最大為FILENAME_MAX個(gè)字符,一次最多可打開FOPEN_MAX個(gè)文件(在<stdio.h>中定義)。

?

1.1.2 freopen

?

#include <stdio.h> FILE *freopen(const char *filename, const char *mode, FILE *stream); 返回:成功為stream,失敗為NULL

以mode指定的方式打開文件filename,并使該文件與流stream相關(guān)聯(lián)。freopen()先嘗試關(guān)閉與stream關(guān)聯(lián)的文件,不管成功與否,都繼續(xù)打開新文件。

該函數(shù)的主要用途是把系統(tǒng)定義的標(biāo)準(zhǔn)流stdin、stdout、stderr重定向到其他文件。

?

1.1.3 fflush

?

#include <stdio.h> int fflush(FILE *stream); 返回:成功為0,失敗返回EOF

對輸出流(寫打開),fflush()用于將已寫到緩沖區(qū)但尚未寫出的全部數(shù)據(jù)都寫到文件中;對輸入流,其結(jié)果未定義。如果寫過程中發(fā)生錯(cuò)誤則返回EOF,正常則返回0。

fflush(NULL)用于刷新所有的輸出流。

程序正常結(jié)束或緩沖區(qū)滿時(shí),緩沖區(qū)自動清倉。

?

1.1.4 fclose

?

#include <stdio.h> int flcose(FILE *stream); 返回:成功為0,失敗返回EOF

刷新stream的全部未寫出數(shù)據(jù),丟棄任何未讀的緩沖區(qū)內(nèi)的輸入數(shù)據(jù)并釋放自動分配的緩沖區(qū),最后關(guān)閉流。

?

1.1.5 remove

?

#include <stdio.h> int remove(const char *filename); 返回:成功為0,失敗為非0值

刪除文件filename。

?

1.1.6 rename

?

#include <stdio.h> int rename(const char *oldfname, const char *newfname); 返回:成功為0,失敗為非0值

把文件的名字從oldfname改為newfname。

?

1.1.7 tmpfile

?

#include <stdio.h> FILE *tmpfile(void); 返回:成功為流指針,失敗為NULL

以方式"wb+"創(chuàng)建一個(gè)臨時(shí)文件,并返回該流的指針,該文件在被關(guān)閉或程序正常結(jié)束時(shí)被自動刪除。

?

1.1.8 tmpnam

?

#include <stdio.h> char *tmpnam(char s[L_tmpnam]); 返回:成功為非空指針,失敗為NULL

若參數(shù)s為NULL(即調(diào)用tmpnam(NULL)),函數(shù)創(chuàng)建一個(gè)不同于現(xiàn)存文件名字的字符串,并返回一個(gè)指向一內(nèi)部靜態(tài)數(shù)組的指針。

若s非空,則函數(shù)將所創(chuàng)建的字符串存儲在數(shù)組s中,并將它作為函數(shù)值返回。s中至少要有L_tmpnam個(gè)字符的空間。

tmpnam函數(shù)在每次被調(diào)用時(shí)均生成不同的名字。在程序的執(zhí)行過程中,最多只能確保生成TMP_MAX個(gè)不同的名字。注意tmpnam函數(shù)只是用于創(chuàng)建一個(gè)名字,而不是創(chuàng)建一個(gè)文件。

?

1.1.9 setvbuf

?

#include <stdio.h> int setvbuf(FILE *stream, char *buf, int mode, size_t size); 返回:成功返回0,失敗返回非0

控制流stream的緩沖區(qū),這要在讀、寫以及其他任何操作之前設(shè)置。

如果buf非空,則將buf指向的區(qū)域作為流的緩沖區(qū),如果buf為NULL,函數(shù)將自行分配一個(gè)緩沖區(qū)。

size決定緩沖區(qū)的大小。

mode指定緩沖的處理方式,有如下值:

  • _IOFBF,進(jìn)行完全緩沖;
  • _IOLBF,對文本文件表示行緩沖;
  • _IOLNF,不設(shè)置緩沖。

?

1.1.10 setbuf

?

#include <stdio.h> void setbuf(FILE *stream, char *buf);

如果buf為NULL,則關(guān)閉流stream的的緩沖區(qū);否則setbuf函數(shù)等價(jià)于:

?(void)setvbuf(stream, buf, _IOFBF, BUFSIZ)

注意自定義緩沖區(qū)的尺寸必須為BUFSIZ個(gè)字節(jié)。

?

1.2 格式化輸出

?

1.2.1 fprintf

?

#include <stdio.h> int fprintf(FILE *stream, const char *format,…); 返回:成功為實(shí)際寫出的字符數(shù),出錯(cuò)返回負(fù)值

按照format說明的格式把變量表中變量內(nèi)容進(jìn)行轉(zhuǎn)換,并寫入stream指向的流。

格式化字符串由兩種類型的對象組成:普通字符(它們被拷貝到輸出流)與轉(zhuǎn)換規(guī)格說明(它們決定變量的轉(zhuǎn)換和輸出格式)。每個(gè)轉(zhuǎn)換規(guī)格說明均以字符%開頭,以轉(zhuǎn)換字符結(jié)束。如果%后面的字符不是轉(zhuǎn)換字符,那么該行為是未定義的。

轉(zhuǎn)換字符列表如下:

字符

說明

d, i

int;有符號十進(jìn)制表示法

o

unsigned int;無符號八進(jìn)制表示法(無前導(dǎo)0)

x, X

unsigned int;無符號十六進(jìn)制表示法(無前導(dǎo)0X和0x),對0x用abcdef,對0X用ABCDEF

u

unsigned int;無符號十進(jìn)制表示法

c

int;單個(gè)字符,轉(zhuǎn)換為unsigned char類型后輸出

s

char *;輸出字符串直到'\0'或者達(dá)到精度指定的字符數(shù)

f

double;形如[-]mmm.ddd的十進(jìn)制浮點(diǎn)數(shù)表示法,d的數(shù)目由精度確定。缺省精度為6位,精度為0時(shí)不輸出小數(shù)點(diǎn)

e, E

double;形如[-]m.dddddde[+-]xx或者[-]m.ddddddE[+-]xx的十進(jìn)制浮點(diǎn)數(shù)表示法,d的數(shù)目由精度確定。缺省精度為6位,精度為0時(shí)不輸出小數(shù)點(diǎn)

g G

double;當(dāng)指數(shù)值小于-4或大于等于精度時(shí),采用%e或%E的格式;否則使用%f的格式。尾部的0與小數(shù)點(diǎn)不打印

p

void *;輸出指針值(具體表示與實(shí)現(xiàn)相關(guān))

n

int *;到目前為止以此格式調(diào)用函數(shù)輸出的字符的數(shù)目將被寫入到相應(yīng)變量中,不進(jìn)行變量轉(zhuǎn)換

%

不進(jìn)行變量轉(zhuǎn)換,輸出%

在%與轉(zhuǎn)換字符之間依次可以有下列標(biāo)記:

標(biāo)記

說明

-

指定被轉(zhuǎn)換的變量在其字段內(nèi)左對齊

+

指定在輸出的數(shù)前面加上正負(fù)號

空格

如果第一個(gè)字符不是正負(fù)號,那么在其前面附加一個(gè)空格

0

對于數(shù)值轉(zhuǎn)換,在輸出長度小于字段寬度時(shí),加前導(dǎo)0

#

指定其他輸出格式,對于o格式,第一個(gè)數(shù)字必須為零;對于x/X格式,指定在輸出的非0值前加0x或0X;對于e/E/f/g/G格式,指定輸出總有一個(gè)小數(shù)點(diǎn);對于g/GG格式,還指定輸出值后面無意義的0將被保留。

寬度[number]

一個(gè)指定最小字段寬的數(shù)。轉(zhuǎn)換后的變量輸出寬度至少要達(dá)到這個(gè)數(shù)值。如果變量的字符數(shù)小于此數(shù)值,那么在變量左/右邊添加填充字符。填充字符通常為空格(設(shè)置了0標(biāo)記則為0)。

.

點(diǎn)號用于把字段寬和精度分開

精度[number]

對于字符串,說明輸出字符的最大數(shù)目;對于e/E/f格式,說明輸出的小數(shù)位數(shù);對于g/G格式,說明輸出的有效位數(shù);對于整數(shù),說明輸出的最小位數(shù)(必要時(shí)可加前導(dǎo)0)

h/l/L

長度修飾符,h表示對應(yīng)的變量按short或unsigned short類型輸出;l表示對應(yīng)的變量按long或unsigned long類型輸出;L表示對應(yīng)的變量按long double類型輸出

在格式串中字段寬度和精度二者都可以用*來指定,此時(shí)該值可通過轉(zhuǎn)換對應(yīng)的變量來獲得,這些變量必須是int類型。

?

1.2.2 printf

?

#include <stdio.h> int printf(const char *format, …);

printf(...)等價(jià)于fprintf(stdout, ...)。

?

1.2.3 sprintf

?

#include <stdio.h> int sprintf(char *buf, const char *format, …); 返回:實(shí)際寫到字符數(shù)組的字符數(shù),不包括'\0'

與printf()基本相同,但輸出寫到字符數(shù)組buf而不是stdout中,并以'\0'結(jié)束。

注意,sprintf()不對buf進(jìn)行邊界檢查,buf必須足夠大,以便能裝下輸出結(jié)果。

?

1.2.4 snprintf

?

#include <stdio.h> int snprintf(char *buf, size_t num, const char *format, …);

除了最多為num-1個(gè)字符被存放到buf指向的數(shù)組之外,snprintf()和sprintf()完全相同。數(shù)組以'\0'結(jié)束。

該函數(shù)不屬于C89(C99增加的),但應(yīng)用廣泛,所以將其包括了進(jìn)來。

?

1.2.5 vprintf

?

1.2.6 vfprintf

?

1.2.7 vsprintf

?

1.2.8 vsnprintf

?

#include <stdarg.h> #include <stdio.h> int vprintf(char *format, va_list arg); int vfprintf(FILE *stream, const char *format, va_list arg); int vsprintf(char *buf, const char *format, va_list arg); int vsnprintf(char *buf, size_t num, const char *format, va_list arg);

這幾個(gè)函數(shù)與對應(yīng)的printf()等價(jià),但變量表由arg代替。參見第7節(jié)有關(guān)<stdarg.h>頭文件的討論。

vsnprintf是C99增加的。

?

1.3 格式化輸入

?

1.3.1 fscanf

?

#include <stdio.h> int fscanf(FILE *stream, const char *format, …); 返回:成功為實(shí)際被轉(zhuǎn)換并賦值的輸入項(xiàng)數(shù)目, 到達(dá)文件尾或變量被轉(zhuǎn)換前出錯(cuò)為EOF

在格式串format的控制下從流stream中讀入字符,把轉(zhuǎn)換后的值賦給后續(xù)各個(gè)變量,在此每一個(gè)變量都必須是一個(gè)指針。當(dāng)格式串format結(jié)束時(shí)函數(shù)返回。

格式串format通常包含有用于指導(dǎo)輸入轉(zhuǎn)換的轉(zhuǎn)換規(guī)格說明。格式串中可以包含:

  • 空格或制表符,他們將被忽略;
  • 普通字符(%除外),與輸入流中下一個(gè)非空白字符相匹配;
  • 轉(zhuǎn)換規(guī)格說明:由一個(gè)%、一個(gè)賦值屏蔽字符*(可選)、一個(gè)用于指定最大字段寬度的數(shù)(可選)、一個(gè)用于指定目標(biāo)字段的字符h/l/L(可選)、一個(gè)轉(zhuǎn)換字符組成。

轉(zhuǎn)換規(guī)格說明決定了輸入字段的轉(zhuǎn)換方式。通常把結(jié)果保存在由對應(yīng)變量指向的變量中。然而,如果轉(zhuǎn)換規(guī)格說明中包含有賦值屏蔽字符*,例如%*s,那么就跳過對應(yīng)的輸入字段,不進(jìn)行賦值。輸入字段是一個(gè)由非空白符組成的字符串,當(dāng)遇到空白符或到達(dá)最大字段寬(如果有的話)時(shí),對輸入字段的讀入結(jié)束。這意味著scanf函數(shù)可以跨越行的界限來讀入其輸入,因?yàn)閾Q行符也是空白符(空白符包括空格、橫向制表符、縱向制表符、換行符、回車符和換頁符)。

轉(zhuǎn)換字符列表如下:

字符

輸入數(shù)據(jù);變量類型

d

十進(jìn)制整數(shù);int *

i

整數(shù);int *。該整數(shù)可以是以0開頭的八進(jìn)制數(shù),也可以是以0x/0X開頭的十六進(jìn)制數(shù)

o

八進(jìn)制數(shù)(可以帶或不帶前導(dǎo)0);unsigned int *

u

無符號十進(jìn)制整數(shù);unsigned int *

x

十六進(jìn)制整數(shù)(可以帶或不帶前導(dǎo)0x/0X);unsigned int *

c

字符;char *。按照字段寬的大小把讀入的字符保存在指定的數(shù)組中,不加入字符'\0'。字段寬的缺省值為1。在這種情況下,不跳過空白符;如果要讀入下一個(gè)非空白符,使用%1s(數(shù)字1)

s

有非空白符組成的字符串(不包含引號);char *。該變量指針指向一個(gè)字符數(shù)組,該字符數(shù)組有足夠空間來保存該字符串以及在末尾添加的'\0'

e/f/g

浮點(diǎn)數(shù);float *。float浮點(diǎn)數(shù)的輸入格式為:一個(gè)任選的正負(fù)號,一串可能包含小數(shù)點(diǎn)的數(shù)字和一個(gè)任選的指數(shù)字段。指數(shù)字段由字母e/E以及后跟的一個(gè)可能帶正負(fù)號的整數(shù)組成

p

用printf("%p")調(diào)用輸出的指針值;void *

n

將到目前為止此調(diào)用所讀的字符數(shù)寫入變量;int *。不讀入輸入字符。不增加轉(zhuǎn)換項(xiàng)目計(jì)數(shù)

[...]

用方括號括起來的字符集中的字符來匹配輸入,以找到最長的非空字符串;char *。在末尾添加'\0'。格式[]...]表示字符集中包含字符]

[^...]

用不在方括號里的字符集中的字符來匹配輸入,以找到最長的非空字符串;char *。在末尾添加'\0'。格式[]...]表示字符集中包含字符]

%

字面值%,不進(jìn)行賦值

字段類型字符:

  • 如果變量是指向short類型而不是int類型的指針,那么在d/i/n/o/u/x這幾個(gè)轉(zhuǎn)換字符前可以加上字符h;
  • 如果變量是指向long類型的指針,那么在d/i/n/o/u/x這幾個(gè)轉(zhuǎn)換字符前可以加上字符l;
  • 如果變量是指向double類型而不是float類型的指針,那么在e/f/g這幾個(gè)轉(zhuǎn)換字符前可以加上字符l;
  • 如果變量是指向long double類型的指針,那么在e/f/g前可以加上字符L。

?

1.3.2 scanf


#include <stdio.h> int scanf(const char *format, …);

scanf(...)等價(jià)于fscanf(stdin, ...)。

?

1.3.3 sscanf

?

#include <stdio.h> int sscanf(const char *buf, const char *format, …);

與scanf()基本相同,但sscanf()從buf指向的數(shù)組中讀,而不是stdin。

?

1.4 字符輸入輸出函數(shù)

?

1.4.1 fgetc

?

#include <stdio.h> int fgetc(FILE *stream);

以unsigned char類型返回輸入流stream中下一個(gè)字符(轉(zhuǎn)換為int類型)。如果到達(dá)文件末尾或發(fā)生錯(cuò)誤,則返回EOF。

?

1.4.2 fgets

?

#include <stdio.h> char *fgets(char *str, int num, FILE *stream); 返回:成功返回str,到達(dá)文件尾或發(fā)生錯(cuò)誤返回NULL

從流stream中讀入最多num-1個(gè)字符到數(shù)組str中。當(dāng)遇到換行符時(shí),把換行符保留在str中,讀入不再進(jìn)行。數(shù)組str以'\0'結(jié)尾。

?

1.4.3 fputc

?

#include <stdio.h> int fputc(int ch, FILE *stream); 返回:成功為所寫的字符,出錯(cuò)為EOF

把字符ch(轉(zhuǎn)換為unsigned char類型)輸出到流stream中。

?

1.4.4 fputs

?

#include <stdio.h> int fputs(const char *str, FILE *stream); 返回:成功返回非負(fù)值,失敗返回EOF

把字符串str輸出到流stream中,不輸出終止符'\0'。

?

1.4.5 getc

?

#include <stdio.h> int getc(FILE *stream);

getc()與fgetc()等價(jià)。不同之處為:當(dāng)getc函數(shù)被定義為宏時(shí),它可能多次計(jì)算stream的值。

?

1.4.6 getchar

?

#include <stdio.h> int getchar(void);

等價(jià)于getc(stdin)。

?

1.4.7 gets

?

#include <stdio.h> char *gets(char *str); 返回:成功為str,到達(dá)文件尾或發(fā)生錯(cuò)誤則為NULL

從stdin中讀入下一個(gè)字符串到數(shù)組str中,并把讀入的換行符替換為字符'\0'。

gets()可讀入無限多字節(jié),所以要保證str有足夠的空間,防止溢出。

?

1.4.8 putc

?

#include <stdio.h> int putc(int ch, FILE *stream);

putc()與fputc()等價(jià)。不同之處為:當(dāng)putc函數(shù)被定義為宏時(shí),它可能多次計(jì)算stream的值。

?

1.4.9 putchar

?

#include <stdio.h> int putchar(int ch);

等價(jià)于putc(ch, stdout)。

?

1.4.10 puts

?

#include <stdio.h> int puts(const char *str); 返回:成功返回非負(fù)值,出錯(cuò)返回EOF

把字符串str和一個(gè)換行符輸出到stdout。

?

1.4.11 ungetc

?

#include <stdio.h> int ungetc(int ch, FILE *stream); 返回:成功時(shí)為ch,出錯(cuò)為EOF

把字符ch(轉(zhuǎn)換為unsigned char類型)寫回到流stream中,下次對該流進(jìn)行讀操作時(shí),將返回該字符。對每個(gè)流只保證能寫回一個(gè)字符(有些實(shí)現(xiàn)支持回退多個(gè)字符),且此字符不能是EOF。

?

1.5 直接輸入輸出函數(shù)

?

1.5.1 fread

?

#include <stdio.h> size_t fread(void *buf, size_t size, size_t count, FILE *stream); 返回:實(shí)際讀入的對象數(shù)

從流stream中讀入最多count個(gè)長度為size個(gè)字節(jié)的對象,放到buf指向的數(shù)組中。

返回值可能小于指定讀入數(shù),原因可能是出錯(cuò),也可能是到達(dá)文件尾。實(shí)際執(zhí)行狀態(tài)可用feof()或ferror()確定。

?

1.5.2 fwrite

?

#include <stdio.h> size_t fwrite(const void *buf, size_t size, size_t count, FILE *stream); 返回:實(shí)際輸出的對象數(shù)

把buf指向的數(shù)組中count個(gè)長度為size的對象輸出到流stream中,并返回被輸出的對象數(shù)。如果發(fā)生錯(cuò)誤,則返回一個(gè)小于count的值。

?

1.6 文件定位函數(shù)

?

1.6.1 fseek

?

#include <stdio.h> int fseek(FILE *stream, long int offset, int origin); 返回:成功為0,出錯(cuò)為非0

對流stream相關(guān)的文件定位,隨后的讀寫操作將從新位置開始。

對于二進(jìn)制文件,此位置被定位在由origin開始的offset個(gè)字符處。origin的值可能為SEEK_SET(文件開始處)、SEEK_CUR(當(dāng)前位置)或SEEK_END(文件結(jié)束處)。

對于文本流,offset心須為0,或者是由函數(shù)ftell()返回的值(此時(shí)origin的值必須是SEEK_SET)。

?

1.6.2 ftell

?

#include <stdio.h> long int ftell(FILE *stream);

返回與流stream相關(guān)的文件的當(dāng)前位置。出錯(cuò)時(shí)返回-1L。

?

1.6.3 rewind

?

#include <stdio.h> void rewind(FILE *stream);

rewind(fp)等價(jià)于fssek(fp, 0L, SEEK_SET)與clearerr(fp)這兩個(gè)函數(shù)順序執(zhí)行的效果,即把與流stream相關(guān)的文件的當(dāng)前位置移到開始處,同時(shí)清除與該流相關(guān)的文件尾標(biāo)志和錯(cuò)誤標(biāo)志。

?

1.6.4 fgetpos

?

#include <stdio.h> int fgetpos(FILE *stream, fpos_t *position); 返回:成功返回0,失敗返回非0

把流stream的當(dāng)前位置記錄在*position中,供隨后的fsetpos()調(diào)用時(shí)使用。

?

1.6.5 fsetpos

?

#include <stdio.h> int fsetpos(FILE *stream, const fpos_t *position); 返回:成功返回0,失敗返回非0

把流stream的位置定位到*position中記錄的位置。*position的值是之前調(diào)用fgetpos()記錄下來的。

?

1.7 錯(cuò)誤處理函數(shù)

?

當(dāng)發(fā)生錯(cuò)誤或到達(dá)文件末尾時(shí),標(biāo)準(zhǔn)庫中的許多函數(shù)將設(shè)置狀態(tài)指示符。這些狀態(tài)指示符可被顯式地設(shè)置和測試。另外,(定義在<errno.h>中的)整數(shù)表達(dá)式errno可包含一個(gè)出錯(cuò)序號,該數(shù)將進(jìn)一步給出最近一次出錯(cuò)的信息。

?

1.7.1 clearerr

?

#include <stdio.h> void clearerr(FILE *stream);

清除與流stream相關(guān)的文件結(jié)束指示符和錯(cuò)誤指示符。

?

1.7.2 feof

?

#include <stdio.h> int feof(FILE *stream); 返回:到達(dá)文件尾時(shí)返回非0值,否則返回0

與流stream相關(guān)的文件結(jié)束指示符被設(shè)置時(shí),函數(shù)返回一個(gè)非0值。

?

1.7.3 ferror

?

#include <stdio.h> int ferror(FILE *stream); 返回:無錯(cuò)返回0,有錯(cuò)返回非0

與流stream相關(guān)的文件出錯(cuò)指示符被設(shè)置時(shí),函數(shù)返回一個(gè)非0值。

?

1.7.4 perror

?

#include <stdio.h> void perror(const char *str);

perror(s)用于輸出字符串s以及與全局變量errno中的整數(shù)值相對應(yīng)的出錯(cuò)信息,具體出錯(cuò)信息的內(nèi)容依賴于實(shí)現(xiàn)。該函數(shù)的功能類似于:

fprintf(stderr, "%s: %s\n", s, "出錯(cuò)信息");

可參見第3節(jié)介紹的strerror函數(shù)。

?

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的c语言输入与输出库函数#includestdio.h的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。