以下のコードはクラッシュするか、入力ファイルの大きさに応じて無限ループに陥ります。A2T 行がオーバーフローを引き起こしていると思いますが、代わりに何を使用すればよいかわかりません。コードを簡潔で安全なものにするための助けをいただければ幸いです。
ご協力いただきありがとうございます。
#define END "\r\n"
#define TAG "Is this string in this line"
std::fstream myFile;
std::fstream outFile;
char cLine[300];
while (!myFile.eof() && !myFile.fail())
{
tstring tTemp = A2T(cLine);
if ( tstring::npos == tTemp.find(TAG))
{
outFile.write(cLine, strnlen(cLine, 300));
if (!outFile.bad())
{
outFile.write(END, strnlen(END, 300));
}
if (outFile.bad())
{
break;
}
}
myFile.getline(cLine, 300);
}