★初心者にVisual C++を教えるスレ★ Part14
■ このスレッドは過去ログ倉庫に格納されています
0776デフォルトの名無しさん
NGNG1ファイル目はうまくいくのに2ファイル目以降がfin.open((LPCTSTR)(dirname + "\\" + filename));でオープンに失敗してしまいます。
while(getline(fin, line))の部分をコメントアウトすれば成功するので、おそらく原因はそこなのでしょうが、何故なのかがわかりません。
出来れば解決法も含めて教えてください。開発環境は Visual C++.NETです。
CString dirname; /* ディレクトリの名前 */ CString filepath; /* dirname\*.txtに適合するファイルのパス */
CString filename; /* dirname\*.txtに適合するファイル名 */ CFileFind FileFind;
BOOL bfnf; /* FileFind.FindNextFile()の成否 */ string line; /* ファイルから1行読み込む時のバッファ */
ifstream fin;
filepath = dirname + "\\*.txt";
if(!FileFind.FindFile(filepath)) return FALSE;// dirname\*.txtなるファイルを取得。なければ終わり
do{
bfnf = FileFind.FindNextFile();
if(!FileFind.IsDots()){// .\や..\の除外
filename = FileFind.GetFileName();
fin.open((LPCTSTR)(dirname + "\\" + filename));// dirname\filenameのファイルを開く(CString->char*)
if(!fin)return FALSE; // ファイルのオープンに失敗したらFALSEを返し終了
while(getline(fin, line)){// 1行取って来る(失敗したら終了)
/* 色々な作業 */
}
fin.close();
}
}while(bfnf);
■ このスレッドは過去ログ倉庫に格納されています