私はこの理論を持っています.fseekとftellを使用してファイルサイズを取得し、動的配列をバッファとして構築できます。次に、fgets() のバッファーを使用します。私は現在、それを行う方法を思い付くことができません。
私の理論は、最初のファイルのサイズをバイト単位で知らないことに基づいています。したがって、構築するバッファの大きさがわかりません。ファイルが 2 GB を超える場合はどうなりますか? SearchInFile() に入れるファイルのファイル サイズを変更して認識するバッファーを構築できるようにしたいと考えています。
これが私がこれまでに持っているものです:
int SearchInFile(char *fname, char *fname2)
{
FILE *pFile, *pFile2;
int szFile, szFile2;
// Open first file
if( (fopen_s(&pFile, fname, "r")) != NULL )
{
return(-1);
}
// Open second file
if( (fopen_s(&pFile2, fname2, "r")) != NULL )
{
return(-1);
}
// Find file size
fseek(pFile, 0L, SEEK_END);
szFile = ftell(pFile);
// Readjust File Pointer
fseek(pFile, 0L, SEEK_SET);
std::vector <char> buff;
//char buff[szFile];
while(fgets(buff.push_back(), szFile, pFile))
{
}
どんな考えや例も素晴らしいでしょう。ここ数時間、ネットで検索しています。