C語(yǔ)言中將結(jié)構(gòu)體數(shù)據(jù)類(lèi)型寫(xiě)入文檔中所遇問(wèn)題

涉及內(nèi)容:#scanf對(duì)結(jié)構(gòu)體初始化#文檔的基本操作#寫(xiě)入文檔后記事本打開(kāi)亂碼問(wèn)題

首先代碼如下:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

struct student

{

? ? char name[7];

? ? char number[4];

};

void input(struct student *node)//用scanf對(duì)結(jié)構(gòu)體初始化

{

? ? printf("請(qǐng)輸入姓名:");

? ? scanf("%s",node->name);

? ? printf("請(qǐng)輸入學(xué)號(hào):");

? ? scanf("%s",node->number);//注意讀入格式

}

int main(void)

{?

? ? struct student *node=NULL;

? ? struct student *p=NULL;

? ? node=(struct student*)malloc(sizeof(struct student));//結(jié)構(gòu)體指針要申請(qǐng)內(nèi)存空間才能使用

? ? p=(struct student*)malloc(sizeof(struct student));

? ? input(node);

? ? printf("這個(gè)學(xué)生的信息是:%s %s\n",node->name,node->number);

? ? FILE *fp;

? ? fp=fopen("C:\\Users\\miyanx\\Desktop\\b.txt","w+");

? ? if(fp==NULL)

? ? ? ? printf("文件打開(kāi)失敗\n");

? ? else

? ? {

? ? ? ? printf("文件創(chuàng)建并打開(kāi)成功\n");

? ? ? ? fwrite(node,sizeof(struct student),1,fp);//寫(xiě)入數(shù)據(jù)

? ? ? ? fseek(fp,0,SEEK_SET);//文件定位函數(shù) 把光標(biāo)移動(dòng)到開(kāi)頭

? ? ? ? fread(p,sizeof(struct student),1,fp);//讀取文件的內(nèi)容

? ? ? ? printf("寫(xiě)入的內(nèi)容是:\n");

? ? ? ? printf("姓名:%s\n",p->name);

? ? ? ? printf("學(xué)號(hào):%s\n",p->number);

? ? ? ? fclose(fp);

? ? }

? ? return 0;

}


運(yùn)行結(jié)果如圖:

用記事本查看該文檔的內(nèi)容情況:

不難發(fā)現(xiàn)的一個(gè)問(wèn)題就是:結(jié)構(gòu)體里的字符型數(shù)組大小需要我們提前計(jì)算好字節(jié)與鍵入的字節(jié)數(shù)一致薪夕,否則就會(huì)出現(xiàn)寫(xiě)入的文件我們打開(kāi)后是亂碼的問(wèn)題。(這一點(diǎn)可以去更改結(jié)構(gòu)體數(shù)組的大小來(lái)進(jìn)行實(shí)驗(yàn))

但是值得肯定的是用fread重新讀取這個(gè)文檔時(shí)玫鸟,是正常輸出不會(huì)亂碼的乏梁。僅僅是記事本中打開(kāi)亂碼應(yīng)該是與記事本讀取數(shù)據(jù)的方式有關(guān)的偷溺。

原因:我們鍵入字符時(shí)如果不將數(shù)組全部賦值划煮,那么它自己就會(huì)隨機(jī)賦值裆操,導(dǎo)致隨機(jī)賦值的元素寫(xiě)入到了所創(chuàng)建文檔中官地,所以記事本中出現(xiàn)亂碼情況酿傍。

另外還有關(guān)于字符型數(shù)組里面存入數(shù)字時(shí)考慮所占字節(jié)的問(wèn)題。


以上僅僅是個(gè)人觀(guān)點(diǎn)驱入,如上述有錯(cuò)誤請(qǐng)讀者積極指出赤炒,本人愿聽(tīng)高見(jiàn)氯析。作者聯(lián)系方式:Q1171466045 可隨時(shí)交流其中的問(wèn)題。




?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末莺褒,一起剝皮案震驚了整個(gè)濱河市掩缓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遵岩,老刑警劉巖你辣,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尘执,居然都是意外死亡舍哄,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門(mén)誊锭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)表悬,“玉大人,你說(shuō)我怎么就攤上這事炉旷∏┛祝” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵窘行,是天一觀(guān)的道長(zhǎng)饥追。 經(jīng)常有香客問(wèn)我,道長(zhǎng)罐盔,這世上最難降的妖魔是什么但绕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮惶看,結(jié)果婚禮上捏顺,老公的妹妹穿的比我還像新娘。我一直安慰自己纬黎,他們只是感情好幅骄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著本今,像睡著了一般拆座。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上冠息,一...
    開(kāi)封第一講書(shū)人閱讀 51,763評(píng)論 1 307
  • 那天挪凑,我揣著相機(jī)與錄音,去河邊找鬼逛艰。 笑死躏碳,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的散怖。 我是一名探鬼主播菇绵,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼肄渗,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了脸甘?” 一聲冷哼從身側(cè)響起恳啥,我...
    開(kāi)封第一講書(shū)人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎丹诀,沒(méi)想到半個(gè)月后钝的,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铆遭,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年硝桩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枚荣。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碗脊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出橄妆,到底是詐尸還是另有隱情衙伶,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布害碾,位于F島的核電站矢劲,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏慌随。R本人自食惡果不足惜芬沉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望阁猜。 院中可真熱鬧丸逸,春花似錦、人聲如沸剃袍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)民效。三九已至隘击,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間研铆,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工州叠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留棵红,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓咧栗,卻偏偏與公主長(zhǎng)得像逆甜,于是被迫代替她去往敵國(guó)和親虱肄。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • C語(yǔ)言高級(jí)部分總結(jié) 嵌入式ARM 3天前 信息來(lái)源于網(wǎng)絡(luò) 一交煞、內(nèi)存大話(huà)題 1.0咏窿、內(nèi)存就是程序的立足之地,體現(xiàn)內(nèi)...
    Leon_Geo閱讀 830評(píng)論 1 3
  • 實(shí)例:C語(yǔ)言編程題 求100到300之間所有素?cái)?shù) 預(yù)備計(jì)算機(jī)知識(shí) 匯編語(yǔ)言是最低級(jí)的語(yǔ)言素征,它可以直接與硬件打交道集嵌。...
    孤桜懶契閱讀 685評(píng)論 0 0
  • 經(jīng)過(guò)幾個(gè)星期的努力,通過(guò)對(duì)c語(yǔ)言的學(xué)習(xí)御毅,終于將課程設(shè)計(jì)完成根欧。這中間也少不了前輩和百度的指導(dǎo) 寫(xiě)課程設(shè)計(jì)初,我當(dāng)然也...
    hjGamma閱讀 1,517評(píng)論 2 14
  • 鏈表概述 鏈表是一種常見(jiàn)的重要的數(shù)據(jù)結(jié)構(gòu)端蛆。它是動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配的一種結(jié)構(gòu)凤粗。它可以根據(jù)需要開(kāi)辟內(nèi)存單元。鏈表有一個(gè)...
    呼啦啦的愛(ài)閱讀 303評(píng)論 0 1
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者今豆,不喜歡去冒險(xiǎn)嫌拣,但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能呆躲。 ...
    yichen大刀閱讀 6,054評(píng)論 0 4