一連の数字 (1 行に 1 つ) で構成される C のファイルを解析しようとしています。各セットはカンマで区切ります。何らかの理由で、間違った出力が得られます。
入力例: 1,2,4,8,55,777 出力: メモリ アドレスと思われるものの束。そして、文字列を印刷すると、55または777(または2桁を超える数字)ではありません。
int * parseFile(char *input, int *set, int line)
{
char buf[BUF_SIZE];
char *token = (char *) malloc(10 * sizeof(char));
int i;
FILE *f = fopen(input, "r");
for (i = 1; i < line; i++)
fgets(buf, BUF_SIZE, f);
memset(buf, 0, BUF_SIZE); // Clear the buffer.
i = 0;
if (fgets(buf, BUF_SIZE, f) != NULL) {
token = strtok(buf, ",");
set[i] = atoi(token);
i++;
while (set[i] != 0) {
printf("%d\n", set[i]);
set[i] = atoi(token);
i++;
token = strtok(NULL, ",");
}
}
fclose(f);
return set;
}