0

アプリケーションで入力ストリームとして使用する予定のすべてのファイルを「res」というフォルダーに保存しました。アプリケーションで文字列を構築し、次のようなものを使用してそれらを開くことにより、これらのファイルを入力ストリームとして使用しようとしています。

....
ifstream inputFile;
....
char fileName[30];
strcpy(fileName,"res/")
switch(num){
case 1:
    strcat(fileName,"file1");
case 2:
    strcat(fileName,"file2");
....
}

inputFile.open(fileName);
....

しかし、ファイルが開かず、その理由がわかりません。inputFile.is_open()メソッドは false を返しています。だから私は2つの質問があります:

  1. サブディレクトリ内のファイル、さらには親ディレクトリ内の他のフォルダ内のファイルを参照するにはどうすればよいですか?

  2. 私が上でやろうとしていることをするために私が使っているものよりも良い練習はありますか?? あると確信しています!

Ubuntu 12.04 で eclipse CDT を使用しており、違いがある場合は g++-4.6 コンパイラーを使用しています。

4

1 に答える 1

0

実際、正しい答えはコメントでデビッドによって与えられます。ケースの後のブレークを忘れて、複数の名前を連結します。また、あなたの狂ったスキルでは、strcat やその他の低レベル関数を避けて std::string を使用することをお勧めします。そうしないと、次の質問はコアをダンプするプログラムについてになります。

于 2013-02-20T01:55:27.947 に答える