C 如何从文件的每一行读取数据并将其存储到结构数组中

C 如何从文件的每一行读取数据并将其存储到结构数组中,c,C,下面是我的代码,我在这一部分工作了一段时间,我创建了一个C套接字服务器,可以为客户端处理数据,但我在文件处理方面遇到了一个问题。我想从文件中选取数据并将其存储到特定部分的结构中,然后根据我选取的数据擦除该文件 #include <stdio.h> #include <stdlib.h> #include <string.h> #include "struct.h" struct student { char command[10]; char

下面是我的代码,我在这一部分工作了一段时间,我创建了一个C套接字服务器,可以为客户端处理数据,但我在文件处理方面遇到了一个问题。我想从文件中选取数据并将其存储到特定部分的结构中,然后根据我选取的数据擦除该文件

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "struct.h"

struct student {
    char command[10];
    char value[50];
    char user[50];
};

int main() {
    int size, i;
    struct student s1[256];
    FILE *file = fopen("file.txt", "r");

    if (file == NULL) {

        printf("Error in reading student data");
        return 1;
    }
    size = 0;

    while(fscanf(file,"%s,%s,%s",
                 s1[size].command,
                 s1[size].value,
                 s1[size].user) != EOF) {

        printf("%s%s%s\n",s1[size].command,s1[size].value,s1[size].user);
        printf("%s\n",s1[size].command);
        size++;
    }

    fclose(file);

    return 0;
}
i、 如果我去商店

a in s1[0].command
w in s1[0].value
a in s1[0].user

但是当我试着运行我的代码时,它会打印出来

a, w, a in s1[0].command

所以我请求帮助,因为我尝试过谷歌搜索,但没有找到解决办法

“%s”
格式为空格分隔的“单词”

如果没有空格分隔“单词”,则必须使用其他方法来解析输入。例如,通过,然后使用类似于“标记化”字符串的内容


或者确保输入格式是空格分隔的。

并且不要忘记使用
%s
(或
%[
)的缓冲区溢出如果在没有字段宽度的情况下使用…@Felix Palmen你能帮我重新编写完整的代码吗?因为我厌倦了压力谢谢你这么多的时间lemmi尝试一下,我看看我是否能根据你的解释解决它…@Felix Palmen
r in s1[1].command
e in s1[1].value
1 in s1[1].user
a, w, a in s1[0].command
r, e, 1 in s1[1].command