2011-09-03 92 views
2

我試圖編寫一個簡單的程序,使用ifstream和scanner來讀取文本文件。出於某種原因,我收到此錯誤:"In passing argument 1 of 'bool ReadVector(std::ifstream&, Vector<double>&)'"。任何想法我做錯了什麼?爲什麼我通過ifstream時出錯?

#include <iostream> 
#include <fstream> 
#include <string> 
#include "scanner.h" 
#include "genlib.h" 
#include "simpio.h" 
#include "vector.h" 

// prototype 
bool ReadVector(ifstream & infile, Vector<double> & vec); 

// main 
int main(){ 
    Vector<double> vec; 
    ifstream infile; 
    infile.open("SquareAndCubeRoots.txt"); 
    if (infile.fail()) Error("Opening file screwed up"); 
    bool foo = ReadVector(&infile, &vec); // stub 
    cout << foo; 
    infile.close(); 
    return 0; 
} 

// stub 
bool ReadVector(ifstream & infile, Vector<double> & vec){ 
    return true; 
} 
+2

在這種情況下,您確實不需要'infile.close();'。當'ifstream'超出範圍時它會自動被調用。 – iammilind

+0

我明白了。非常感謝。 – jefflovejapan

回答

5

ReadVector接受一個引用,但你提供了一個指針。請致電

bool foo = ReadVector(infile, vec); 
3

您試圖傳遞指針,而參數是引用。刪除操作員地址(ReadVector(infile, vec))。