我有一个csv文件,我想得到第二列的数据。就像那样:
1st row: 4 8 6
2nd row: 3 2 2
3rd row: 7 7 5
我会将它们添加到AVLTREE中,但主要问题是如何获取特别的第二列数据?它们用分号分隔。
4;8;6;
3;2;2;
7;7;5;
到目前为止,我只有这段代码
int main()
{
int c;
char buffer[1000];
FILE *f = fopen("file.txt", "r");
if(f == NULL)
{
printf("Error can't open file \n");
}
while (fgets(buffer,1000,f) != NULL)
{
char *p = strtok(buffer, ";");
while(p)
{
printf("%s\n", p);
p=strtok(NULL, ";");
}
printf("%c",c);
}
fclose(f);
}
答案 0 :(得分:0)
如果你想在C中解析CSV,我可以建议你使用库。 我正在使用这个,它完美地工作:https://sourceforge.net/projects/cccsvparser/
如果你想自己做,我建议你检查一下strtok函数:http://manpagesfr.free.fr/man/man3/strtok.3.html 此函数在参数中使用字符串和分隔符,并为您提供与分隔符匹配的下一个元素。
如果您想使用strtok,我也可以建议您查看此链接:How does strtok() split the string into tokens in C?