我有一個包含此C++編寫自己的輸入操縱
Map2D, [3, 2]
Dot3D, [25, -69, -33], [-2, -41, 58]
Map3D, [6, 9, -50]
Map2D, [3, 2]
Dot3D, [7, -12, 3], [9, 13, 68]
Map3D, [6, 9, 5]
Map2D, [3, 2]
Dot3D, [70, -120, -3], [-29, 1, 268]
Dot3D, [7, 12, 3], [-9, 13, 68]
Map3D, [1, 3, 8]
Dot2D, [5, 7], [3, 8]
基本上文本文件第一數據的數據文本文件的類名,我得到了4類
Map2D
Map3D
Dot2D
Dot3D
我試圖寫我自己的文件操作器,以便我的程序可以提取上面的數據,併爲4個類中的每一個重載提取操作符>>,然後將其存儲到相關對象中。
我正在考慮使用矢量,地圖,集或列表來存儲。但爲此,我該如何實現我想要做的事情,比如存儲到課程的相關對象中。
我試着用google搜索如何創建自己的文件操縱器,但是如果有人能夠給我看一些示例代碼,並且我可以在測試文件中編譯並執行它,然後觀察輸出結果,那麼這樣做會很好。我想使用iomanip在>>運營商
超負荷,我很抱歉造成的一切麻煩。我也可以不使用數組來實現以下存儲數據。
我,因爲我需要創造這樣
我需要做的是這樣
cout << "Input File Name";
cin >> readFile;
,並執行所有數據讀取&對象創建
那麼它會讀取使用機械手逐行記錄,然後創建類以及其中的數據。
感謝您的幫助!
我沒有得到的部分是爲什麼你需要編寫一個操縱器。操縱器通常用於修改流狀態。據我所見,你所需要做的就是爲你的四個類中的每一個重載'operator >>'。第二個問題的答案可能與使用多態性一樣簡單。 – john
@john,感謝您的幫助。我明白,但認真我嘗試谷歌周圍,並沒有機會我明白如何做到這一點。我對其他編程語言很好,但是這個操作器的東西,你能給我一些示例代碼,比如我如何用這個類的一個完成這個。我知道我不應該這樣問。但它真的會非常流行。再次感謝! – user1818620
你似乎需要的不是文件操作符,而是簡單的解析器。我建議你只需要一個解析器對象,它一次讀取一行文件,解析第一個單詞,並基於第一個單詞實例化適當類的對象。如果數據文件的語法不符合您的期望,那麼這樣一個簡單的解析器也會使錯誤陷印更容易。 – Fred