作者eggheadlai (賴蛋蛋)
看板C_and_CPP
標題[問題] 請教關於sscanf的問題
時間Sun May 29 19:16:02 2011
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) OpenCV
問題(Question): 小弟想要讀入一連串影像及他的label值
在記事本中格式是
p01_01.jpg,1
p01_02.jpg,1
p01_03.jpg,1
p02_01.jpg,2
p02_02.jpg,2
p02_03.jpg,2
...
接著利用strtok與sscanf想把檔案名稱與label值分離出來
但一直出錯
錯誤程式:
if(fgets(string, 100, data_file) == NULL)
break;
sub_str = strtok( string, ",");
sscanf(strtok( NULL, "\n"), "%d", &Ans); //跑到這邊出錯
系統顯示:
於 0x6154f8e0 (msvcr90d.dll) 的 Test.exe 中發生未處理的例外狀況:
0xC0000005: 讀取位置 0x00000000 時發生存取違規
研究蠻久實在不知到哪裡出了問題,請板上大大能夠解惑,感激不盡~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.62.4
→ firejox:fgets是藉由長度或換行中斷的... 05/29 19:20
→ eggheadlai:喔我就是要把所有圖片都讀進來讀到沒圖為止 05/29 19:22
→ eggheadlai:所以那邊應該沒有問題..我想O_O||| 05/29 19:22
→ eggheadlai:不好意思小弟程式新手..每次單步執行到sscanf就出錯QQ 05/29 19:23
→ firejox:你這樣寫也只能讀一筆而已... 05/29 19:25
→ eggheadlai:!?可是我之前沒有加入LABEL值程式可以順利讀完耶 05/29 19:26
→ eggheadlai:加了label值之後就出錯了= =" 05/29 19:27
→ firejox:恩...strtok(string,",\n")... 05/29 19:28
→ eggheadlai:f大我用你的方法試了可是還是不行o_o 05/29 19:35
→ eggheadlai:而且我的字串string裡面應該一開始是p01_01.jpg,1 05/29 19:36
→ firejox:你有沒有連sscanf裡和sub的strtok一起改.. 05/29 19:39
→ eggheadlai:f大可以說詳細一點麼小弟新手看不太懂@@||| 05/29 19:47
→ firejox:sub_str = strtok(string,",\n"); 05/29 19:48
→ firejox:sscanf(strtok(string,",\n"), ... );這樣? 05/29 19:49
→ eggheadlai:我試試o_o 05/29 19:50
→ eggheadlai:好像可以了~謝謝f大~感激不盡~ 05/29 20:07
推 tropical72:while(fscanf("%[^.].%[^,],%d%*c",buf, ext, &num)!= 05/30 06:39
→ tropical72:EOF ) {....} ?? 05/30 06:39