2011-09-03 68 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))。

相关问题