開發平台(Platform): macOS high Sierra (Ex: Win10, Linux, ...)
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
XCode
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
小弟是c++新手,原先用ifstream逐行讀,然後stringstream分析input的token
但是覺得好像有點慢,又聽說strtok這功能,想嘗試換另一種方式
但是google一下,嘗試去做也做不太成
之後又把檔案讀進一個大char裡,然後看到delimiter(空白、'\t'、'\n')來分割
但又會落到一些
最後還是想試著用strtok,但就卡關
我的目標是這樣
我先初始化三個vector,一個存分析出來的token(vector<string>)
另外兩個是vector<int> rowVec和vector<int> columnVec分別儲存token的列和行
parse的時候,跳過空白、tab和'\n'
parse出token後,儲存到vector<string>tokenVector,以及各自存列行到
rowVector和columnVector
我打算用strtok去做,但是真的想破頭都做不了
別說存row和vec,光是分析token就無法
目前只能用最慢的stringstream做了
在此想請教各位前輩高手們,謝謝
餵入的資料(Input):
3 X11 6 X12 8 X13 9
2 X22 X31
10 R 1000 E 1001 E 1000 E 1001 E 1000 E 1000 A 1006 R 1007 A 1008
R 1009
3 X21 0 X22 2 X23 5
3 X11 X13 X31
8 E 2001 E 2000 R 2002 E 2000 E 2001 R 2005 E 2001 E 2002
1 X31 2
0
3 A 3000 I 3701 A 3002
0
3 X31 X11 X22
6 R 4000 E 4000 E 4001 R 4003 R 4004 E 4002
00
00
3 R 5000 I 5987 R 5002
1 X61 2
1 X31
6 R 6000 E 6000 A 6002 A 6003 R 6004 I 6005
預期的正確結果(Expected Output):
就是每一個數字或英文token或是英文token和數字都是token
而且可以查詢其所在的row和vector
程式碼(Code):(請善用置底文網頁, 記得排版)
https://ideone.com/KeFWcc
補充說明(Supplement):