作者Arim (Arim5566)
看板C_and_CPP
標題[問題] 請教一個關於讀檔的問題
時間Wed Jul 13 21:15:50 2011
想用一個struct讀取下列格式的檔案
Topic 0th:
fft 0.122870
friendcaller 0.080509
lib 0.073730
wide 0.048917
floatfft 0.038760
doublefft 0.029771
contact 0.013050
speex 0.010540
audio 0.010130
xiph 0.007926
tmp 0.007620
sip 0.006640
flag 0.006633
ilbc 0.006633
friend 0.006598
btn 0.006501
invite 0.006154
src 0.005917
login 0.005806
nb 0.005792
Topic 1th:
mobclix 0.082817
....
...
...
每個topic下面會接20個配對(string double)
struct word2prob
{
string name;
double prob;
};
struct content
{
string tIndex;
word2prob field[20];
};
...
content topic;
fread(&topic,sizeof(struct content),1,pfile);
但是一直發生記憶體區段錯誤
後來把string改成char [50]就可以了
請問這之間是struct放string錯了?
還是 fread的關係?
謝謝各位版友的指教
--
~宅男的四個徵兆~
∠□ ○ ! * \○/ ★ (○ ?
╦╦└□ " ○□═ □ □>
║║√√ ╦══╦ ∥ |\
一回家就上PTT 每天想正妹 以當好人為樂 忘記正妹虧欠自己
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.244.16
→ firejox:我猜因為string太大了XD 07/13 21:16
→ james732:為什麼不是用類似 file >> name >> prob; 之類的寫法呢? 07/13 21:17
→ firejox:而且string不能用C來讀 07/13 21:17
→ james732:char []是連續的記憶體空間,可以直接塞 07/13 21:17
→ james732:但你不知道string內部的記憶體長什麼樣子 07/13 21:17
※ 編輯: Arim 來自: 218.172.244.16 (07/13 21:21)
→ angleevil:sstream<-- 07/13 21:26
→ dustlike:怎麼會fread跟string混用... 07/14 00:20