我尝试使用C处理文本文件,读取每一行并将其拆分为分隔符" \ t"。代码可以工作但在文件末尾输出一行:
测试文件是:
0 zero
0 one
0 two
代码:
void ReadClass(){
char line[1000];
char *ptr;
int class;
char word[1000];
FILE *fin;
fin = fopen("class_file", "rb");
if (fin == NULL){
printf("ERROR, class fine not found!");
exit(1);
}
while (1){
fgets(line, sizeof(line), fin);
ptr = strtok(line, "\t");
class = atoi(ptr);
printf("%i ", class);
ptr = strtok(NULL, "\t");
//strcpy(word, ptr) //This gives segmentation fault because of the null pointer in the end
printf("%s", ptr);
if (feof(fin)) break;
}
fclose(fin);
}
输出结果为:
0 zero
0 one
0 two
0 (null)
感谢任何帮助过的人。