Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
strtok()(C)意外结果_C_File_Strtok - Fatal编程技术网

strtok()(C)意外结果

strtok()(C)意外结果,c,file,strtok,C,File,Strtok,我打开一个文本文件,如下所示: <2504><titlos><desc><paragwgos> 所以我写了这部分代码: void readB(char *buffer, char *title, char *description, char *producer) { char s[2]="><", *token; token = strtok(buffer, s); strcpy(title, tok

我打开一个文本文件,如下所示:

    <2504><titlos><desc><paragwgos>
所以我写了这部分代码:

void readB(char *buffer, char *title, char *description, char *producer)
{
    char s[2]="><", *token;
    token = strtok(buffer, s);
    strcpy(title, token);
    token = strtok(NULL, s);
    strcpy(description, token);
    token = strtok(NULL, s);
    strcpy(producer, token);
}


int main()
{
    int num;
    char t[100], d[100], p[100], buffer[408];
    FILE *f;
    if ( (f = fopen("inp.txt", "r"))==NULL )
    {
        printf("Error opening requested file!");
        exit(1);
    }
    fscanf(f, "%*c%d", &num);
    fgets(buffer, 408, f);
    readB(buffer, t, d, p);
    printf("%d %s %s %s\n", num, t, d, p);
    fclose(f);
    return 0;
}
但不是2504个提特罗斯·德斯帕拉戈斯 它显示:2504 titlos desc pa
有人看到代码有什么问题吗

与问题无关,但不要使用read作为函数名。同意@EugeneSh。和char s[2]=>@ecentuagreese请不要在回应评论时动态编辑问题。它扰乱了对话的流程。是的,我的错!谢谢,伙计们,现在一切都很好。当你们认为你们知道自己最有可能为一个讨厌的惊喜做好准备的时候。
void readB(char *buffer, char *title, char *description, char *producer)
{
    char s[2]="><", *token;
    token = strtok(buffer, s);
    strcpy(title, token);
    token = strtok(NULL, s);
    strcpy(description, token);
    token = strtok(NULL, s);
    strcpy(producer, token);
}


int main()
{
    int num;
    char t[100], d[100], p[100], buffer[408];
    FILE *f;
    if ( (f = fopen("inp.txt", "r"))==NULL )
    {
        printf("Error opening requested file!");
        exit(1);
    }
    fscanf(f, "%*c%d", &num);
    fgets(buffer, 408, f);
    readB(buffer, t, d, p);
    printf("%d %s %s %s\n", num, t, d, p);
    fclose(f);
    return 0;
}