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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c++文件write函數(shù)問題?

c++文件write函數(shù)問題?

慕斯709654 2019-02-06 10:06:45
c++中如何把一個結(jié)構(gòu)體寫入文件,以及如何從文件中讀出結(jié)構(gòu)體呢?寫了個程序不知道為什么編譯錯誤,如下:#include<iostream>#include<fstream>using namespace std;struct a{int data;char name;struct a* aptr;};typedef struct a A;int main(){A a;a.data=1;a.name=2;a.aptr=NULL;A* b=&a;ofstream out;out.open("a.txt",ios::out|ios::binary);out.write(b,sizeof(A));out.close(); //in.open("a.txt",ios::in|ios::binary);return 0;}
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經(jīng)驗 獲得超9個贊

編譯提示信息應(yīng)該告訴你了啊,write的第一個參數(shù)必須是const char *型的,你要強制轉(zhuǎn)換一下
out.write((const char *)b,sizeof(A));
不過,結(jié)構(gòu)中的指針成員寫入文件是沒有含義的,因為指針的值是數(shù)據(jù)在此次運行時內(nèi)存中的偏移,下次再從文件中讀出來這個地址值就無效了.

查看完整回答
反對 回復(fù) 2019-03-24
?
眼眸繁星

TA貢獻1873條經(jīng)驗 獲得超9個贊

#include<iostream>

#include<fstream>

using namespace std;
struct a
{
int data;
char name;
struct a* aptr;
};
typedef struct a A;

int main()
{
A a;
a.data=1;
a.name=2;
a.aptr=NULL;
A* b=&a;
ofstream out;
out.open("a.txt",ios::out|ios::binary);
out.write((char*)b,sizeof(A));

out.close();
//in.open("a.txt",ios::in|ios::binary);
return 0;

}
上邊這個程序編譯沒有錯誤了。
ostream& write ( const char* s , streamsize n );
這個是write的原型 第一個參數(shù)必須是指向char型的指針,第二個是大小
你傳的是指向結(jié)構(gòu)體的指針 所以不對



查看完整回答
反對 回復(fù) 2019-03-24
  • 3 回答
  • 0 關(guān)注
  • 1998 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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