所以我有一個文件,其中前3行將始終引用「狀態」,其餘部分將引用「轉換」我知道前3行將始終以相同的格式,並在同一行上的投入,但「過渡」的個數之間的標籤是未知的,但在文件中讀取和解析輸入
for(int i = 0; i < 3; i++){
myFile >> junk;
myFile >> stateNum;
myFile >> designation;
//make object and put in container
}
現在在線4
所以我處理的「狀態」永遠啓動我需要處理「轉換」,所以如果我的輸入文件看起來像
state 1 a
state 2 b
state 3 c
trans a b c d &
trans d s i & 3
...
trans 4 e & d g
其中同一行上的所有空格都是製表符,狀態/轉換進入junk
,因爲它們不是必需的,因爲我知道1-3是狀態,其餘是轉換。我現在如何從行4開始並繼續直到文件結束?基本上,if
條件做我使用,使這項工作
if(???){
myFile >> junk;
myFile >> one;
myFile >> two;
...
myFile >> five;
//create object and place in container
}
,其中一,二,......五個早些時候宣佈,一個,...,五對應5個條目後「反式」
什麼讀線成一條線串(函數getline),並與istringstream解析參數(使用當前行字符串)? – 2015-02-11 22:23:19
如果你的輸入行的語法確實如圖所示,'trans'不是*「垃圾」。以*開始的行* not *不能是一個轉換,並且循環讀取轉換應該終止。 – WhozCraig 2015-02-11 23:00:17
@WhozCraig輸入非常受控,文本文件中不會有錯誤。如果這是產品代碼或我完全同意,但我知道在這種情況下格式將永遠是正確的 – 2015-02-12 19:07:24