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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

区分多种类型的输入输出

發(fā)布時(shí)間:2024/4/11 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 区分多种类型的输入输出 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

區(qū)分多種類型的輸入輸出

文章目錄

  • 區(qū)分多種類型的輸入輸出
    • **1.printf函數(shù)**
    • **2.sprintf函數(shù)**
    • **3.fprintf函數(shù)**
    • **4.snprintf函數(shù)**
    • **5.write函數(shù)**
    • **6.read函數(shù)**
    • **7.fread函數(shù)**
    • **8.fwrite函數(shù)**

1.printf函數(shù)

這個(gè)就不說(shuō)了

2.sprintf函數(shù)

int sprintf(char *str, const char *format, ...);
  • 作用:是把格式化字符串輸出到指定字符串,所以參數(shù)比printf多了個(gè)char * ,那就是目標(biāo)字符串的地址
  • 頭文件:stdio.h
  • 函數(shù)功能:格式化字符串,將格式化的數(shù)據(jù)寫入字符串中
  • 參數(shù):(1)str:是char類型的指針,指向?qū)懭氲淖址羔?#xff1b;
  • 參數(shù):(2)format:格式化字符串,即在程序中想要的格式;
  • 參數(shù):(3)argument:可選參數(shù),可以為任意類型的數(shù)據(jù)
  • 函數(shù)返回值:buffer指向的字符串的長(zhǎng)度;

3.fprintf函數(shù)

int fprintf(FILE *stream, const char *format, ...);
  • 是把格式化字符串輸出到指定文件中,所以參數(shù)比printf多了個(gè)文件指針File * ,那是目標(biāo)文件的文件描述符(文件流指針)
  • stream-- 這是指向 FILE 對(duì)象的指針,該 FILE 對(duì)象標(biāo)識(shí)了流
  • format-- 這是 C 字符串,包含了要被寫入到流 stream 中的文本。它可以包含嵌入的 format 標(biāo)簽,format 標(biāo)簽可被隨后的附加參數(shù)中指定的值替換,并按需求進(jìn)行格式化。
  • format 標(biāo)簽屬性是%[flags][width][.precision][length]specifier
    [argument]:附加參數(shù)列表
  • fprintf( )會(huì)根據(jù)參數(shù)format 字符串來(lái)轉(zhuǎn)換并格式化數(shù)據(jù),然后將結(jié)果輸出到參數(shù)stream
    指定的文件中,直到出現(xiàn)字符串結(jié)束(’\0’)為止

4.snprintf函數(shù)

int snprintf(char *str, size_t size, const char *format, ...);
  • 將可變個(gè)參數(shù)(…)按照f(shuō)ormat格式化成字符串,然后將其復(fù)制到str中
  • 如果格式化后的字符串長(zhǎng)度 < size,則將此字符串全部復(fù)制到str中,并給其后添加一個(gè)字符串結(jié)束符(’\0’);
  • 如果格式化后的字符串長(zhǎng)度 >= size,則只將其中的(size-1)個(gè)字符復(fù)制到str中,并給其后添加一個(gè)字符串結(jié)束符(’\0’),返回值為欲寫入的字符串長(zhǎng)度
  • 函數(shù)返回值
    若成功則返回預(yù)寫入的字符串長(zhǎng)度,若出錯(cuò)則返回負(fù)值。
    與snprintf的返回值不同,sprintf的返回值是成功寫入的字符串長(zhǎng)度,此處需要謹(jǐn)慎處理。

5.write函數(shù)

  • 函數(shù)定義:
ssize_t write (int fd, const void * buf, size_t count);
  • 函數(shù)說(shuō)明:write()會(huì)把參數(shù)buf所指的內(nèi)存寫入count個(gè)字節(jié)到參數(shù)放到所指的文件內(nèi)。
  • 返回值:如果順利write()會(huì)返回實(shí)際寫入的字節(jié)數(shù)。當(dāng)有錯(cuò)誤發(fā)生時(shí)則返回-1,錯(cuò)誤代碼存入errno中。

6.read函數(shù)

ssize_t read(int fd, void * buf, size_t count);
  • 函數(shù)說(shuō)明:read()會(huì)把參數(shù)fd所指的文件傳送count 個(gè)字節(jié)到buf 指針?biāo)傅膬?nèi)存中。
  • 返回值:返回值為實(shí)際讀取到的字節(jié)數(shù), 如果返回0, 表示已到達(dá)文件尾或是無(wú)可讀取的數(shù)據(jù)。若參數(shù)count 為0, 則read()不會(huì)有作用并返回0。

7.fread函數(shù)

size_t fread(void*buffer,size_t size,size_t count,FILE*stream);
  • buffer: 是讀取的數(shù)據(jù)存放的內(nèi)存的指針,
    (可以是數(shù)組,也可以是新開辟的空間)
    ps: 是一個(gè)指向用于保存數(shù)據(jù)的內(nèi)存位置的指針(為指向緩沖區(qū)
    保存或讀取的數(shù)據(jù)或者是用于接收數(shù)據(jù)的內(nèi)存地址)

  • size: 是每次讀取的字節(jié)數(shù)

  • count: 是讀取的次數(shù)

  • stream: 是要讀取的文件的指針
    ps: 是數(shù)據(jù)讀取的流(輸入流)

  • 返回值
    成功:是實(shí)際讀取的元素(并非字節(jié))數(shù)目
    失敗:返回0
    ps:如果輸入過(guò)程中遇到了文件尾或者輸出過(guò)程中出現(xiàn)了錯(cuò)誤,這個(gè)數(shù)字可能比請(qǐng)求的元素?cái)?shù)目要小

8.fwrite函數(shù)

size_t fwrite(void*buffer,size_ size,size_t count,FILE*stream)
  • buffer:是一個(gè)指向用于保存數(shù)據(jù)的內(nèi)存位置的指針
    (是一個(gè)指針,對(duì)于fwrite來(lái)說(shuō),是要獲取數(shù)據(jù)的地址)
  • size: 是每次讀取的字節(jié)數(shù)
  • count: 是讀取的次數(shù)
  • stream: 是數(shù)據(jù)寫入的流(目標(biāo)指針的文件)
  • 返回值:
    是實(shí)際寫入的元素(并非字節(jié))數(shù)目
    ps:如果輸入過(guò)程中遇到了文件尾或者輸出過(guò)程中出現(xiàn)了失誤,這個(gè)數(shù)字可能比請(qǐng)求的元素?cái)?shù)目要小

總結(jié)

以上是生活随笔為你收集整理的区分多种类型的输入输出的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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