使用c中的逗号分隔值读取文件

时间:2016-07-02 19:18:18

标签: c file-io

我有一个文本文件,格式为字符串,字符串,数字

职业,居住,薪水

我怎么能读到这个,因为它是以逗号分隔的?我有以下代码

int t;
char occupation[20];
char residence[20];
int salary;

fp = fopen(argv[1],"r");

while(fgets(buffer,sizeof(buffer),fp) != NULL) {
    t = sscanf(buffer,"%20[^,],%20[^,],%d",occupation,residence,&salary);
    if (t == 3)
    {
        addToFront(linkedList,salary,occupation,residence);
    }
}

我知道我的addToFront不是问题,因为如果我用以下内容调用它:

addToFront(linkedList,50000,"plumber","miami");

它工作正常。

1 个答案:

答案 0 :(得分:0)

代码应该可以工作,但请注意,如果您将20个字符读入20个字符的声明空间,则没有空间用于尾随0.因此,将变量声明的时间长于预期(char occupation[21];

目前还不清楚你的缓冲区是如何声明的 - 是不是?

实际上,您根本不需要缓冲区,您可以使用与fscanf相同的sscanf,除了它需要文件指针而不是缓冲区。