我正在尝试解析 C 中的文件,该文件由一组数字(每行一个)组成。每组以逗号分隔。出于某种原因,我得到了不正确的输出。
示例输入:1,2,4,8,55,777 输出:一堆似乎是内存地址的东西。当我打印出字符串时,它的读数不是 55 或 777(或任何超过两位数的数字)。
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;
}