fscanf関数は非常に強力で、タスクを解決するために使用できます。
- 2 つの文字を読み取る必要があります。形式は「%c%c」です。
- 次に、スペースをスキップします (フォーマット文字列に追加するだけです) - "%c%c ".
- 次に、コンマに到達するまで文字列を読み取ります。最大文字列サイズを指定することを忘れないでください。したがって、形式は「%c%c %10[^,]」です。10 - 読み取る最大文字数。[^,] - 許可された文字のリスト。^, - は、コンマを除くすべてを意味します。
- 次にコンマをスキップします - "%c%c %10[^,],"。
- そして最後に整数を読み取ります - "%c%c %10[^,],%d"。
- 最後のステップは、4 つのトークンがすべて読み取られたことを確認することです。fscanf の戻り値を確認してください。
完全なソリューションは次のとおりです。
FILE *f = fopen("input_file", "r");
do
{
char c1 = 0;
char c2 = 0;
char str[11] = {};
int d = 0;
if (4 == fscanf(f, "%c%c %10[^,],%d", &c1, &c2, str, &d))
{
// successfully got 4 values from the file
}
}
while(!feof(f));
fclose(f);