我有一个文本文件,格式为字符串,字符串,数字
职业,居住,薪水
我怎么能读到这个,因为它是以逗号分隔的?我有以下代码
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");
它工作正常。
答案 0 :(得分:0)
代码应该可以工作,但请注意,如果您将20个字符读入20个字符的声明空间,则没有空间用于尾随0.因此,将变量声明的时间长于预期(char occupation[21];
)
目前还不清楚你的缓冲区是如何声明的 - 是不是?
实际上,您根本不需要缓冲区,您可以使用与fscanf
相同的sscanf
,除了它需要文件指针而不是缓冲区。