[問題] C++ 讀檔 動態陣列 指標

看板C_and_CPP (C/C++)作者 (DannyBoy)時間15年前 (2010/09/19 16:39), 編輯推噓1(1012)
留言13則, 4人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) 讀取以下文字檔並分類做輸出存成文字檔 .model sample01 .inputs a b c d e .outputs h j .names b c d f←想存成b:1 c:0 d:1 f:1 or f=bc'd 101 1 .names b c d g←想存成g=bc+d 11- 1 --1 1 .names a f h←想存成h=a+f' 1- 1 -0 1 .names e f g i 110 1 001 1 .names i j 0 1 .end 希望得到的正確結果: f=bc'd g=bc+d h=a+f' i=efg'+e'f'g j=i' 程式跑出來的錯誤結果: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) G++ 補充說明: 因為讀到的node不一定是字元a b c有時候可能是一個字串ex:0_11 0_22 想知道要如何存起來,想過陣列和linklist利用指標 先創一個struct做分類再用陣列存起來 但是要怎麼讀到空白'/n'去做個判別 以下是我練習讀取資料並加以判別之後才要做存取 #include <iostream> #include <fstream> using namespace std; int main () { ifstream infile; infile.open ("要讀的檔", ifstream::in); string op; int i=0; while (! infile.eof()) { infile>>op; if(op==".names") cout<<"+"; if(op=='\n')←讀不到 是因為只讀的到字串嗎? cout<<"enter"; cout<<op<<endl; i++; } cout<<i<<endl; infile.close(); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.25.53.81 ※ 編輯: dannys258 來自: 114.25.53.81 (09/19 16:40)

09/19 16:42, , 1F
先告訴你infile>>op會以空白或'\n'做為分隔,所以讀不到
09/19 16:42, 1F

09/19 16:50, , 2F
對阿 用一個一個字元去讀也怪怪的
09/19 16:50, 2F

09/19 16:54, , 3F
可以用cin.getline先抓一整行再去分析 參考上一篇
09/19 16:54, 3F

09/20 22:03, , 4F
請先說一下輸入檔再講什麼好嗎....
09/20 22:03, 4F

09/20 22:13, , 5F
輸入檔:.model sample01
09/20 22:13, 5F

09/20 22:23, , 6F
坦白說我也看不懂原po輸入跟輸出的關係是什麼 XD
09/20 22:23, 6F

09/21 09:52, , 7F
b c d f←想存成b:0 c:0 d:1 f:1 or f=bc'd
09/21 09:52, 7F

09/21 10:01, , 8F
如果什麼根據都沒有 看來應該是套字用的generator
09/21 10:01, 8F

09/21 10:03, , 9F
下面的 1,0,- 應該是有意思的吧?
09/21 10:03, 9F
※ 編輯: dannys258 來自: 140.138.152.174 (09/21 12:27)

09/21 12:28, , 10F
1=字串原輸出, 0=字串加"'" ,-=DON'T CARE
09/21 12:28, 10F

09/21 17:27, , 11F
建議一行一行抓 一行抓下來後用空白去parse
09/21 17:27, 11F

09/22 03:11, , 12F
用甚麼函式去用空白區分抓
09/22 03:11, 12F

09/22 10:44, , 13F
www.cppreference.com 自己查 也可以自己另外寫
09/22 10:44, 13F
文章代碼(AID): #1CbSnAyE (C_and_CPP)
文章代碼(AID): #1CbSnAyE (C_and_CPP)