第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

麻煩幫忙解釋一下,關(guān)于fread和fwrite函數(shù)使用中的一個(gè)問題

麻煩幫忙解釋一下,關(guān)于fread和fwrite函數(shù)使用中的一個(gè)問題

C++ C
Cats萌萌 2021-10-20 15:15:52
用fread和fwrite函數(shù)讀寫結(jié)構(gòu)體數(shù)據(jù),把數(shù)據(jù)寫入文件時(shí),只有漢字部分輸出正確,數(shù)字部分全市亂碼,讀取數(shù)據(jù)時(shí),數(shù)字部分顯示的好像是內(nèi)存地址。請(qǐng)高手指點(diǎn),急求,謝謝。#include<stdio.h>#include<stdlib.h>struct time{int year;int mon;int day;int hour;int min;float sec;};void main(){struct time tim[8];int i;for(i=0; i<8; i++){tim[i].year = 2000;tim[i].mon = 1;tim[i].day = 1;tim[i].hour = 0;tim[i].min = 0;tim[i].sec = 0.0;}FILE *fp;fp = fopen("E:\\C程序\\1.txt","wb");if(fp==NULL){printf("file open error!\n");exit(0);}else{for(i=0; i<8; i++){fwrite(&tim[i],sizeof(struct time),1,fp);printf("%d %d %d %d %d %4.2f\n",tim[i].year,tim[i].mon,tim[i].day,tim[i].hour,tim[i].min,tim[i].sec);}}fclose(fp);}
查看完整描述

2 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

你寫入文件時(shí)取的是地址,還是地址的地址,別搞錯(cuò)了,要么指針,千萬(wàn)別又對(duì)指針取地址了。那樣存取的就是地址了。fread,則是讀的時(shí)候一樣,都要注意這個(gè)問題

查看完整回答
反對(duì) 回復(fù) 2021-10-24
?
哈士奇WWW

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超6個(gè)贊

不知你是如何輸出的?
用fwrite()寫入文件的值,如果用fread()來(lái)讀取是可以取回原始的內(nèi)容的,但是如果用fwrite()寫入這個(gè)txt文件是為了用“記事本”等文本處理軟件打開來(lái)閱讀,那么一定會(huì)有亂碼的情況。因?yàn)槎M(jìn)制的讀寫會(huì)直接將數(shù)值原樣寫入文件,不會(huì)進(jìn)行ASCII碼的轉(zhuǎn)換,而文本都是需要經(jīng)過ASCII碼轉(zhuǎn)換的。
如果是為了打開TXT文件進(jìn)行閱讀,應(yīng)該使用fprintf()/fscanf()等函數(shù)進(jìn)行讀寫。

查看完整回答
反對(duì) 回復(fù) 2021-10-24
  • 2 回答
  • 0 關(guān)注
  • 275 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)