从文件中读取并在 c 中使用 strtok()

read from file and use strtok() in c

你能帮帮我吗?我正在尝试读取 .txt 文件中的字符串 123;342;543;36.6;calm。然后使用函数 atoi() 来比较我的值。但首先我想使用 strtok()。我不明白这有什么问题,因为我只工作 printf("%s",str); 但我不能正确使用 strtok() 这就是为什么我没有得到我的结果。

代码:

void printInfo()
{
    int i;
    FILE *out;
    char str[250];
    char sp[10]=";";
    char *istr;
    istr=strtok(str,sp);

    if ((out =fopen("test.txt","r"))==NULL)
        printf("Error open, file\n");
    else
    {
            fgets(str,250,out);
            printf("%s",str);
            while (istr != NULL)
            {
                printf("%s",istr);
                istr=strtok(NULL,sp);
            }
    }
   fclose(out);
}
istr=strtok(str,sp);

读取数据后调用

您的第一个 strtok() 电话打错了地方。它必须在字符串 str 收到有效内容之后,即在 fgets().

之后

使用 sscanf()

这会更容易、更清洁、更安全