私は以下のような機能を持っています。この関数では、ファイル名がパラメータとして送信され、それが開かれ、その内容が読み込まれて利用されます。私が達成したいのは同じ機能ですが、文字列(ファイルの内容)をその関数に直接渡すことで実現します。だから私は、あなたがいずれかのChar *またはあなたの入力としてのstd ::文字列でそれを行うことができますC++:CライブラリファイルIOをC++ストリームIOに変換するにはどうすればよいですか?
unsigned CalcChecksum(char *filename, unsigned &found_checksum)
{
unsigned s, c, fcs;
char *ch;
char input[256];
FILE *fp;
s = 0;
fp = fopen(filename, "rb");
if (!fp)
{
found_checksum = 1;
return 0;
}
ch = fgets(input, 255, fp);
if ((feof(fp)) || (strncmp(input, "checksum", 8) == 0))
{
fclose(fp);
return s;
}
while (1)
{
while (*ch != '\n')
{
c = (unsigned)*ch++;
s = CRCtab[(s^c) & 0xFF]^s >> 8;
}
ch = fgets(input, 255, fp);
if ((feof(fp)) || (strncmp(input, "checksum", 8) == 0))
break;
}
if (strncmp(input, "checksum", 8) == 0)
{
fcs = 0;
sscanf(input, "checksum 0x%x", &fcs);
if (fcs == 0)
sscanf(input, "checksum 0X%X", &fcs);
found_checksum = fcs;
}
else
found_checksum = 0;
fclose(fp);
return s;
}
これはプレーンなCコードのようです。とにかく[C-strings](https://www.programiz.com/c-programming/c-strings)について学ぶべきです。 – Melebius
「これは以下のように」?それは機能なのか、そうではありませんか?そして、*正確に*何が問題なのですか?掲載されているように、これは実際の問題に関する質問よりも目標のようです。 CライブラリのファイルIOをC++ストリームIOに変換する方法を尋ねていますか?これは複数のステップからなるプロセスですが、最初はC++ IOストリームライブラリの理解と、できないことを理解することです。 – WhozCraig
'CライブラリファイルIOをC++ストリームIOに変換する方法は?'はい、これは完全な方法です。私は関数全体を変換したくないのですが、Clib IOをC++ストリームIOに変換する方法を知っています。 –