[問題] 請教關於sscanf的問題

看板C_and_CPP (C/C++)作者 (賴蛋蛋)時間15年前 (2011/05/29 19:16), 編輯推噓1(1017)
留言18則, 3人參與, 最新討論串1/1
開發平台(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

05/29 19:20, , 1F
fgets是藉由長度或換行中斷的...
05/29 19:20, 1F

05/29 19:22, , 2F
喔我就是要把所有圖片都讀進來讀到沒圖為止
05/29 19:22, 2F

05/29 19:22, , 3F
所以那邊應該沒有問題..我想O_O|||
05/29 19:22, 3F

05/29 19:23, , 4F
不好意思小弟程式新手..每次單步執行到sscanf就出錯QQ
05/29 19:23, 4F

05/29 19:25, , 5F
你這樣寫也只能讀一筆而已...
05/29 19:25, 5F

05/29 19:26, , 6F
!?可是我之前沒有加入LABEL值程式可以順利讀完耶
05/29 19:26, 6F

05/29 19:27, , 7F
加了label值之後就出錯了= ="
05/29 19:27, 7F

05/29 19:28, , 8F
恩...strtok(string,",\n")...
05/29 19:28, 8F

05/29 19:35, , 9F
f大我用你的方法試了可是還是不行o_o
05/29 19:35, 9F

05/29 19:36, , 10F
而且我的字串string裡面應該一開始是p01_01.jpg,1
05/29 19:36, 10F

05/29 19:39, , 11F
你有沒有連sscanf裡和sub的strtok一起改..
05/29 19:39, 11F

05/29 19:47, , 12F
f大可以說詳細一點麼小弟新手看不太懂@@|||
05/29 19:47, 12F

05/29 19:48, , 13F
sub_str = strtok(string,",\n");
05/29 19:48, 13F

05/29 19:49, , 14F
sscanf(strtok(string,",\n"), ... );這樣?
05/29 19:49, 14F

05/29 19:50, , 15F
我試試o_o
05/29 19:50, 15F

05/29 20:07, , 16F
好像可以了~謝謝f大~感激不盡~
05/29 20:07, 16F

05/30 06:39, , 17F
while(fscanf("%[^.].%[^,],%d%*c",buf, ext, &num)!=
05/30 06:39, 17F

05/30 06:39, , 18F
EOF ) {....} ??
05/30 06:39, 18F
文章代碼(AID): #1DuYhtlY (C_and_CPP)
文章代碼(AID): #1DuYhtlY (C_and_CPP)