3
// stream from file.
ifstream file;

int main (int argc, char * argv[]) {

// get argument passed from command line
// This is file name
if (argc != 2 ) {
    cout << "use:  ./executable <filename>";

}else {
    //cout << "You are using filename: " << argv[1];

    // start the file stream
    file (argv[1]);
}

有什么理由file(argv[1])会给出错误吗?我可以将 ifstream 作为全局变量吗?

4

2 回答 2

6

当您应该使用ifstream.()file.open(argv[1])

除此之外,拥有全局ifstream.

于 2009-11-12T02:37:11.823 回答
2

您可以将 ifstream 作为全局变量(这是否是好的风格是另一个问题)。

问题似乎是您正在尝试使用构造函数:file(argv[1])

此时已经构造了全局变量(使用默认构造函数),您将需要使用该open方法。

file.open( argv[1] );
于 2009-11-12T02:37:23.493 回答