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

从文件中读取并在c中使用strtok(),c,strtok,C,Strtok,你能帮我吗?我试着读一个字符串123;342;543;36.6;平静在一个.txt文件中。然后使用函数atoi比较我的值。但首先我想用strtok。我不明白这有什么不对,因为我只使用printf%s,str;但是我不能正确使用strtok,这就是为什么我没有得到结果 代码: 应该在读取数据后调用 应在读取数据后调用您的第一次strtok调用位于错误的位置。它必须在字符串str收到有效内容之后,即在fgets之后 使用sscanf将更容易、更干净、更安全。您的第一次strtok呼叫位于错误的位置。

你能帮我吗?我试着读一个字符串123;342;543;36.6;平静在一个.txt文件中。然后使用函数atoi比较我的值。但首先我想用strtok。我不明白这有什么不对,因为我只使用printf%s,str;但是我不能正确使用strtok,这就是为什么我没有得到结果

代码:

应该在读取数据后调用

应在读取数据后调用

您的第一次strtok调用位于错误的位置。它必须在字符串str收到有效内容之后,即在fgets之后

使用sscanf将更容易、更干净、更安全。

您的第一次strtok呼叫位于错误的位置。它必须在字符串str收到有效内容之后,即在fgets之后

这将更容易、更干净、更安全地使用sscanf。

诚实的抄送:您需要更详细一点;你的语法也需要练习。诚实的抄送:你需要更详细一点;你的语法也需要练习。
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);