我有一个CSV文件(.csv
扩展名),如下所示:
"id_product","name","brand","category","price"
0157,Sparachiodi,Mannesmann,FaiDaTe,32.99
0211,Cavi di rame,Chapuis,FaiDaTe,20.23
4815,Tenaglia,Ks Tools,FaiDaTe,7.50
8451,Lucchetto,Blinky,FaiDaTe,4.55
我的问题是:如何编写一些仅从第二行读取文件的C代码?我想要做的是文件中的一种研究。 (例如,我想搜索名为" cavi"的产品,我将展示整行。)
答案 0 :(得分:1)
你有一个csv文件。您知道合法行很短(<1000个字符)
所以
char buff[1024];
fgets(buff, 1024, fp); /* read line 1 */
fgets(buff, 1024, fp); /* read line 2, overwriting line 1 */
但可能你想要的是这个
char buff[1024];
fgets(buff, 1024, fp);
/* check buff is a legitimate csv header here */
/* after we've got rid of the reader, do data lines until they run out */
while(gets(buff, 1024, fp))
{
char *field = strtok(buff, ',');
if(field)
{
/* numerical field, product id */
}
field = strtok(0, ',');
if(field)
{
/* product name field */
}
}