2010-07-01 56 views
0

當我使用本書中推薦的代碼時,出現錯誤。我正在使用NetBeans 6.8 for Mac。C++:如何編寫一個程序從文件中讀取整數?

下面是代碼:

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() 
{ 

    ifstream inputFile; 

    int number; 

    inputFile.open("MacintoshHD/Users/moshekwiat/Desktop/random.txt"); 

    inFile >> number; 

    cout<<endl <<number<<endl; 

    inputFile.close(); 

    return (0); 
} 

以下是錯誤:

main.cpp:20: error: 'inFile' was not declared in this scope 

什麼需要做的事情? 謝謝

回答

2

與INPUTFILE更換INFILE。

+0

謝謝,擺脫了錯誤,但現在它只是輸出0!該文件在每行上有不同的編號 – mokwi8 2010-07-01 14:59:59

+0

@ mokwi8:如果要讀取每行,請這樣做。程序中沒有循環的痕跡。您在程序中從inFile中讀取一次,這可能是發生了什麼事情。 – 2010-07-01 15:01:44

+0

@David Thornley:對不起,我是一般的C++ /編程新手。什麼是最好的循環語句使用?我不知道有多少數字。 此外,我檢查了文件的第一個數字不是0,它是42 – mokwi8 2010-07-01 15:05:15

1

變化​​到inputFile

1

首先,代碼中沒有'inFile'對象。再次

inFile >> number; 

看:

ifstream inputFile; 
1

使用INPUTFILE而不是INFILE

2

問題1(一個編譯器看到)是一個簡單的拼寫錯誤:INFILE應被輸入文件。確保在發佈到堆棧溢出之前檢查此類錯誤。

問題2:文件的路徑名稱可能是錯誤的,一般來說,當您嘗試從無法正確初始化的流中讀取文件時,您將得到0。

在這種情況下,你指定的路徑是相對路徑從您的項目啓動在目錄中的文件,所以無論目錄你運行該程序從需要一個名爲「MacintoshHD」子目錄,然後在「用戶」 ,那麼......你明白了。要獲取正確的路徑,請右鍵單擊Finder中的文件,然後選擇「獲取信息」。在「Where:」下,您會看到包含文件的目錄的正確路徑;它可能會說「/用戶/ moshekwiat /桌面」。添加「/random.txt」到那個,這應該是你使用的路徑。

通常情況下,C++程序員將編寫代碼以確保在從中讀取文件之前該文件可以正確打開。一個簡單的方法來檢查,初始化inputFile後,但試圖讀取它之前是:

if (! inputFile) { 
    cerr << "Could not open the file!" << endl; 
    return 1; // returning non-0 status is customary 
       // if your program encounters an error 
} 
相關問題