C语言 fgets函数读取CSV文件如何从第二行开始,第一行是表头。

CSV文件如下:
name text
"xm" "ddd"
"xw" "www"
"xh" "qqq"
我要去掉name和text这一行,直接从xm开始读取。

第一次获取的数据不要就可以了,何必这么麻烦。

函数原型:

char *fgets(char *buf, int bufsize, FILE *stream);

参数:

*buf: 字符型指针,指向用来存储所得数据的地址。

bufsize: 整型数据,指明存储数据的大小。

*stream: 文件结构体指针,将要读取的文件流。

返回值:

成功,则返回第一个参数buf;

在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;

如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。

例子:

#include<string.h>
#include<stdio.h>
 
int main ( void )
{
    FILE*stream;
    char string[]="Thisisatest";
    char msg[20];
/*openafileforupdate*/
    stream=fopen("DUMMY.FIL","w+");
/*writeastringintothefile*/
    fwrite(string,strlen(string),1,stream);
/*seektothestartofthefile*/
    fseek(stream,0,SEEK_SET);
/*readastringfromthefile*/
    fgets(msg,strlen(string)+1,stream);
/*displaythestring*/
    printf("%s",msg);
    fclose(stream);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-26
循环前先fgets()一下,忽略之,然后再循环读数,如:
char str[100];
fp=fopen("cvs" ,"r" );
fgets( str,sizeof(str),fp ); //跳过第一行
while( !eof(fp) )
{
fgets( str,sizeof(str),fp );
puts( str );

}本回答被网友采纳