我有一个文本文件,格式为字符串、字符串、数字
职业、居住、工资
既然它是逗号分隔的,我该如何读入它?我有以下代码
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。因此,声明您的变量比您期望的长一倍(char 占用[21];
)
目前还不清楚你的缓冲区是如何声明的 - 是这样吗?
实际上,您根本不需要缓冲区,您可以使用 fscanf
,它与 sscanf
相同,只是它采用文件指针而不是缓冲区。
关于c - 在c中使用逗号分隔值读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163663/