ページ 11

ひとつのfstreamで複数のファイルを開くとき

Posted: 2008年11月25日(火) 19:08
by LaL
どうもこんにちは。
fstreamについての質問です。
学校の宿題で、ひとつのifstreamのみで、複数のファイルを開こうとしているのですが、うまくいきません…。

メインの中で、

string inputFileName;
ifstream inputFile;
ofstream outpuFile;

と宣言して、

ユーザーからgetline(cin,inputFileName);でインプットファイル名であるstringを読み取って、
inputFile.open(C-stringのファイル名);
という具合にして、一つ目のファイルは難なく開けるのですが、do-whileを使用して、二つ目のファイルを開くときにエラーが起こってしまい、開けません。
二つ目のファイルを開く前に一つ目のファイルはinputFile.close()で閉じてあるのですが…。
また、以下のようなコードで、EOFまで読み取っているはずなのですが、もし何か私の見落としに気付く方がいらっしゃれば、有難いです(_ _)
while(inputFile.peek() != EOF){
	inputFile >> fromFile;
    x[length++] = atof(fromFile.c_str());
	if(!inputFile){
           length--;
	  inputFile.clear();
           break;
	}
   }

Re:ひとつのfstreamで複数のファイルを開くとき

Posted: 2008年11月26日(水) 01:12
by Justy
 ifstreamのオブジェクトを再利用するなら、inputFile.close()した際に
inputFile.clear()もコールして下さい。

C++入出力
ttp://www.cppll.jp/cppreference/cppio_details.html#clear

Re:ひとつのfstreamで複数のファイルを開くとき

Posted: 2008年12月01日(月) 19:23
by LaL
どうもありがとうございました(_ _)