ifstream変数はグローバル変数をすることができますか?

StackOverflow https://stackoverflow.com/questions/1719530

  •  19-09-2019
  •  | 
  •  

質問

// 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を持つことができますか?

役に立ちましたか?

解決

あなたが使用する必要があるとき、(存在しない)ifstream()のオペレータに電話をしようとしている<のhref =「http://www.cplusplus.com/reference/iostream/ifstream/open/」 rel = "nofollowをnoreferrer"> file.open(argv[1]) でます。

それに加えて、グローバルifstreamを持っていることについて違法何もない。

他のヒント

あなたは(これで良いスタイルは、別の質問であるかどうか)は、グローバル変数としてはifstreamを持つことができます。

問題は、コンストラクタを使用しようとしているということのようだ:file(argv[1])

グローバル変数は既にこの時点で、(デフォルトのコンストラクタを使用して)構築されるだろう、とあなたが代わりにopenメソッドを使用する必要があります。

file.open( argv[1] );
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top