2017-03-16 97 views
-3

因此,我試圖從文本文件中讀取包含壟斷板的文本文件,並且由於某種原因,我無法通過我通常的方式執行此操作,任何人都可以看到我失蹤的任何東西嗎?不知道我的問題是在文本文件中讀取

#include "stdafx.h" 
#include <iostream> 
#include <fstream> 
#include <sstream> 
#include <string> 
using namespace std; 

class properties 
{ 
private: 
    ifstream infile("Monopoly.txt"); 
    string line; 
    while (getline(infile, line)) 
    { 
     istringstream iss(line); 
     int i, j; 
     if (!(iss >> i >> j)) 
     { 
      break; 
     }           
    } 
}; 
+0

什麼是**症狀**? 「不工作」並不是我們可以診斷的問題。代碼是否編譯?跑?賽格故障?任何錯誤?輸出不正確? – abelenky

+2

我甚至都沒有在這裏看到一種方法!我看到一個類,在任何方法體外都有一些代碼。我猜這甚至沒有編譯? – abelenky

+1

@abelenky是正確的。問題不在文件中。這是你寫的廢話。你需要一個功能。你不能把代碼放在類聲明中。你應該有這個錯誤。 – drescherjm

回答

0

無法通過的方式,我通常做,任何人都可以在這裏看到什麼,我缺少做呢?

錯誤您在代碼中做出的是,你有課與它的代碼,不屬於任何定義的方法的一部分。一個類可以包含變量和/或函數的字段,但它不能直接在其中包含代碼,這是您所做的。

您需要從您的班級中取出代碼,並將其放入類中聲明的public函數中。然後在你的main()函數中,創建該類的一個對象,並在main()中將該函數作爲該對象的一個​​字段調用。這應該排序問題。

編輯:順便說一句,除非您將文件存儲在編譯器存儲所有文件的默認位置,否則應指定文件所在的目錄。像這樣:

ifstream infile("C:\\...\\Monopoly.txt"); add the directory just in front of the file name 

允許您使用您選擇的目錄,而不是依賴於編譯器設置的默認目錄。

+0

downvoter可以解釋我出錯的地方嗎?這樣我可以解決我的答案? –

+0

我最近有人低估了我回答他們認爲不應該回答的問題。這個網站有各種各樣的態度。我贊成你。 – stark

+0

@stark感謝您的回覆,我想知道我的答案是否有錯誤。 downvoter沒有給出降低答案的理由。 –