无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語言常見小錯(cuò)誤- wb+ 讀取失敗

2022-08-11 08:26 作者:鳧水億  | 我要投稿

wb+ 文件打開模式的一種,表示以文件處于?二進(jìn)制讀寫?模式

C 語言是一門簡(jiǎn)單但復(fù)雜的語言,這話聽起來可不矛盾。C 語言語法簡(jiǎn)單,容易上手,但越學(xué)越覺得難,要求編程者擁有較強(qiáng)的邏輯能力,龐大的 C 語言基礎(chǔ)知識(shí)儲(chǔ)備,同時(shí)還要有一定的英語基礎(chǔ)( 查詢英文文檔或閱讀外國網(wǎng)友解決bug的辦法?),以及——無處不在的細(xì)節(jié)!

如果你正在寫一個(gè)項(xiàng)目,可能遭遇過被 wb+ 折磨的時(shí)刻,特別是調(diào)試代碼的時(shí)候,你會(huì)覺得是不是自己學(xué)了個(gè)假 C 語言。以上的問題所在,全都是一個(gè)原因,沒有閱讀官方文檔,在 C 17 草案中,發(fā)現(xiàn)了一個(gè)關(guān)鍵信息:

關(guān)鍵信息


Note that a file positioning function may further modify the file position indicator after discarding any pushed-back characters.

注意:在丟棄任何 推回(pushed-back) 字符之后,文件定位函數(shù)可能進(jìn)一步修改文件位置標(biāo)識(shí)(indicator)。

前半句看不懂沒關(guān)系,因?yàn)槲乙膊欢蟀刖淇炊涂梢粤恕拔募ㄎ缓瘮?shù)可能進(jìn)一步修改文件位置標(biāo)識(shí)”。結(jié)合原文給出的信息,我得到一個(gè)假設(shè):一般情況下寫入文件后,文件標(biāo)識(shí) (indicator)被移動(dòng)到了末尾,假如使用 fread()進(jìn)行讀取,那什么也得不到。

讀取錯(cuò)位


廢話不多說,我們使用生成臨時(shí)文件函數(shù) tmpfile()?[<stdlib.h>] 作為講解目標(biāo)。第一步,使用 tmpfile() 得到一個(gè)臨時(shí)文件,然后寫入一些數(shù)據(jù);第二步,使用 fread() 函數(shù)讀取文件內(nèi)容;

結(jié)果為:

結(jié)果顯示,寫入數(shù)據(jù)后,indicator 確實(shí)位于末尾處,那么使用 fread() 確實(shí)也什么得不到。

我們將 indicator 移動(dòng)到文件首部,然后再試一遍。rewind()?[<stdlib.h>]?函數(shù),作用是將位置移動(dòng)到首部。

結(jié)果表明確實(shí)如此:

通過測(cè)試,發(fā)現(xiàn)假設(shè)與實(shí)際情況吻合(確信)。所以操作文件時(shí),一定要注意 indicator 處于的位置。否則,鬧出笑話,可不好了~


C語言常見小錯(cuò)誤- wb+ 讀取失敗的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
天祝| 家居| 南丰县| 桐乡市| 佛山市| 新丰县| 杭锦旗| 凤阳县| 江源县| 牙克石市| 临城县| 汽车| 冷水江市| 武冈市| 台山市| 松溪县| 成安县| 万源市| 苍山县| 鄂托克前旗| 德阳市| 沛县| 玉门市| 桂阳县| 进贤县| 虹口区| 通江县| 淮南市| 邵东县| 三亚市| 蒙自县| 丰原市| 于都县| 十堰市| 沙雅县| 叶城县| 邵阳市| 溧阳市| 色达县| 洛扎县| 敦煌市|