我有這個文本文件
q1 t q2
q2 e q3
q3 x q4
q4 t q5 q6 q11
q5 | q6 q11
我想提取由空格分隔每個元素。例如,在第一行中,我希望能夠將「q1」「t」和「q2」作爲單獨的標記提取出來。
我想有兩種方式去了解這個
從文件,通過令牌令牌讀取,使用ifstream的>>。我用這種方法遇到的問題是,我不知道如何知道何時到達行的末尾,以便我可以移動到下一行。
另一種方法是使用getline()一次獲得整行。這種方法的問題是我必須自己標記字符串,每一行都不一樣,所以我不確定這是最好的想法。我非常喜歡,除了strtok(),這看起來並不是我想要的。感謝球員任何幫助表示讚賞。
那麼你想要一個巨大的線性數組包含文件中的每個標記?如果是這樣,第一個工作正常,可以用'std :: vector'的構造函數增加兩個迭代器。 – chris
如果你的令牌被空白(包括換行符)很好地隔開,那麼'while(fs >> str)'完全適合你。 – WhozCraig
你的換行符有意義。然後去'getline()'並通過stringstream提供行來獲取標記。或者你的換行符*不具有意義,那麼從'ifstream'中讀取將會像其他任何空白字符一樣忽略它們。 – DevSolar