作者dannys258 (DannyBoy)
看板C_and_CPP
標題[問題] C++ 讀檔 動態陣列 指標
時間Sun Sep 19 16:39:36 2010
遇到的問題: (題意請描述清楚)
讀取以下文字檔並分類做輸出存成文字檔
.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