看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 讀取以下文字檔並分類做輸出存成文字檔 .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)
james732:先告訴你infile>>op會以空白或'\n'做為分隔,所以讀不到 09/19 16:42
dannys258:對阿 用一個一個字元去讀也怪怪的 09/19 16:50
james732:可以用cin.getline先抓一整行再去分析 參考上一篇 09/19 16:54
wawi:請先說一下輸入檔再講什麼好嗎.... 09/20 22:03
dannys258:輸入檔:.model sample01 09/20 22:13
james732:坦白說我也看不懂原po輸入跟輸出的關係是什麼 XD 09/20 22:23
dannys258:b c d f←想存成b:0 c:0 d:1 f:1 or f=bc'd 09/21 09:52
sunneo:如果什麼根據都沒有 看來應該是套字用的generator 09/21 10:01
sunneo:下面的 1,0,- 應該是有意思的吧? 09/21 10:03
※ 編輯: dannys258 來自: 140.138.152.174 (09/21 12:27)
dannys258:1=字串原輸出, 0=字串加"'" ,-=DON'T CARE 09/21 12:28
wawi:建議一行一行抓 一行抓下來後用空白去parse 09/21 17:27
dannys258:用甚麼函式去用空白區分抓 09/22 03:11
wawi:www.cppreference.com 自己查 也可以自己另外寫 09/22 10:44