繁体   English   中英

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

[英]Read file using comma separated values in c

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

职业,住所,工资

由于它是逗号分隔的,我该怎么读? 我有以下代码

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");

它工作正常。

该代码应该可以工作,但是请注意,如果您将20个字符读入一个20个字符的声明空间中,则末尾的0将没有空间。因此,声明您的变量的时间要比您期望的长1个char occupation[21];char occupation[21];

目前尚不清楚缓冲区的声明方式-就是吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM