1、因?yàn)槟銓懳募臅r候使用了fwrite fread, fwrite - binary stream input/output而fread,fwrite是以二進(jìn)制的方式讀寫的,所以保存的文件是亂碼。

成都創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營銷策劃、網(wǎng)頁設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號搭建、重慶小程序開發(fā)公司、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動行銷領(lǐng)域創(chuàng)造價值而不懈努力!
2、結(jié)構(gòu)體類型寫入文件,那么保存的必然是二進(jìn)制數(shù)據(jù),直接看文件肯定是亂碼的。如果想文件內(nèi)容是直接可看的,那么不要直接存儲結(jié)構(gòu)體,應(yīng)該自己設(shè)計(jì)這個文件的文本格式,按文本方式存儲數(shù)據(jù)。
3、先確認(rèn)一下文件是二進(jìn)制存的嗎?如果是,用記事本打開它,應(yīng)該是看不到數(shù)字的。不是說在記事本里輸入字符1 2 3 4,然后保存成number.dat,程序就能正確讀取的。
4、全部調(diào)用 gets 函數(shù),一次回車輸入一行,而不是全部用 scanf來做。至于亂碼,是因?yàn)樽詈笠粋€字符串變量沒有初始化,于是后面沒有\(zhòng)0,程序把內(nèi)存中的亂碼寫進(jìn)文件,直到偶然遇到\0為之。這樣的程序是不穩(wěn)定的。
5、這里每次讀入4個字節(jié),而因?yàn)槭沁@個文件里保存的都是字符,每個字符占一個字節(jié),所以實(shí)際上第一次是把 10 _ 0 _ 四個字符,拼成了一個4字節(jié)的整數(shù),并且保存在了a[0]里面。
6、你寫入文件的又不是字符串, 當(dāng)然是看起來是亂碼。可以先sprintf(str,%f,i),轉(zhuǎn)成字符串,將str用fwrite寫入文件。但這樣再去讀這些文件,需要再次將字符串轉(zhuǎn)換成數(shù)字。
這是C語言習(xí)慣,務(wù)必養(yǎng)成!\x0d\x0a\0是字符串結(jié)束符,每當(dāng)解釋器看到這\0才會認(rèn)為字符串終止,而你的程序明顯沒有字符串結(jié)束符,所以連同垃圾內(nèi)存一起讀出來了。“燙燙。”等就是垃圾內(nèi)存。
文件編碼問題,如果是VC,person.txt要用ASCII或GBK編碼。
漢字亂碼是因?yàn)榫彌_區(qū)有字符,需要用fflush(stdin);來清空鍵盤緩沖區(qū),使用getch等都是治標(biāo)不治本的辦法,可以多學(xué)習(xí)一下fflush的使用,對于大批量的手動輸入,很用。
你這個亂碼,你的文件里,學(xué)號長度為10個字節(jié),所以你定義學(xué)號這個變量時,必須定義11個字節(jié)的長度,因?yàn)樽址淖兞浚仨氁幸粋€\0作為結(jié)束,不然的話,顯示的時候,沒有結(jié)束符就會接著往下顯示,就會有亂碼出現(xiàn)。
=1) 簡單看了下,這行有問題,往文件里寫的時候是把一個字符串寫進(jìn)去,stud[i]是一個struct,強(qiáng)行把它序列化的話,內(nèi)存中的存儲不是連續(xù)的,這樣寫就會寫入一些沒用的數(shù)據(jù),導(dǎo)致出錯。
你這個亂碼,你的文件里,學(xué)號長度為10個字節(jié),所以你定義學(xué)號這個變量時,必須定義11個字節(jié)的長度,因?yàn)樽址淖兞浚仨氁幸粋€\0作為結(jié)束,不然的話,顯示的時候,沒有結(jié)束符就會接著往下顯示,就會有亂碼出現(xiàn)。
k不應(yīng)該是按位賦值給key的嗎?為什么把key[i]都賦值為k 總結(jié):把指針賦值給變量,會輸出地址,printf會把地址強(qiáng)轉(zhuǎn)為十進(jìn)制輸出;key數(shù)組中每一個數(shù)字都被賦值為k,然后輸出,就會輸出一長串?dāng)?shù)字。
p1-bthplc:(未初始化,數(shù)據(jù)不可知)由于p1-bthplc未初始化,所以會有亂碼出現(xiàn)。建議你采用三個數(shù)據(jù)分開輸入的方式解決這個問題。
如果輸出的是字符串,則是沒有正確設(shè)置串尾符\0(或是正確的串尾符被破壞掉了)的緣故。
文章題目:c語言存儲函數(shù)亂碼 c語言 存儲
轉(zhuǎn)載源于:http://www.chinadenli.net/article24/dehdjce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、虛擬主機(jī)、商城網(wǎng)站、微信小程序、營銷型網(wǎng)站建設(shè)、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)