2013-05-07 72 views
0

我試圖從每行都有一個數字的文件中提取數字。使用C++將文件中的值插入到函數中

3 
7 
8 
5 
2 
1 

並將文件中的整數插入到名爲insert()的代碼中的函數中。

這是我有:

int main() 
    { ifstream myfile; 
     myfile.open("numbers.txt"); 
     while(!myfile == EOF) 
     { 
      myfile.getline(myfile,1000000); 
      insert(myfile); 
     } 
     myfile.close(); 


display(); 
return 0; 
} 

我得到這個錯誤彙總「的std :: ifstream的MYFILE具有不完整的類型,不能被定義。

+3

您需要在文件的開始處添加'#include using namespace std;'。 – 2013-05-07 04:41:09

+0

讀取文件時,數字是字符串還是整數? – brooklynchick 2013-05-07 04:42:43

回答

1

您需要在文件的beggining添加

#include <fstream> 
using namespace std; 

編輯:另外,您呼叫insert(myfile);其中myfileìfstream類型,但你的insert定義是void insert(int)

+0

我添加了我在插入(myfile)時出現錯誤,這是從'void *'到'int'的無效轉換 – brooklynchick 2013-05-07 04:45:08

+0

爲什麼不發佈'insert()'的代碼? – 2013-05-07 04:46:31

1

myfile.getline(myfile,1000000);

這是怎麼應該工作?讓我們來看看函數的簽名在DOCUMENTATION

istream& getline (char* s, streamsize n);

istream& getline (char* s, streamsize n, char delim);

功能要你給它的數組的字符指針S和大小n,你給它一個ifstream的MYFILE和一個非常大的隨機int。

創建的讀取線

char line[99];

臨時存儲陣列,然後將其傳遞給該函數。

myfile.getline(line,99);


也是你void insert(int d)接受整數和你正在試圖fstream的對象傳遞給它。你可以保持這樣,但你必須首先將字符串轉換爲int。嘗試atoi()

+0

我只是想弄清楚如何使用insert()函數來遍歷整個文件並將其插入鏈表中,但是不確定。我可以通過使用atoi()將字符串轉換爲整數嗎? – brooklynchick 2013-05-07 04:58:04

+0

@brooklynchick當然可以。從文件中提取行,然後從中提取整數。 – 2013-05-07 05:01:08

+0

非常感謝你! – brooklynchick 2013-05-07 05:05:28