c语言fscanf读取csv文件,使用fscanf函数从.csv文件中读取int

我试图从.csv文件中读取一些整数。我不知道到底有多少整数是每行的文件中,我只知道,所有的csv文件是一样的东西:使用fscanf函数从.csv文件中读取int

1,2,3,9,6,3,4

4,5,6,7

2,3,8,9,4

我需要存储阵列中的每一行,但我不”我知道如何从一个文件中读取整数值而不知道该行中有多少个整数。 在我的程序中,我必须检查每行是否只有2个元素,以及第二个元素是否等于我从主接收到的sel值。

void fun1 (sel)

{

int aux[3];

int res;

FILE* fp;

fd=fopen("c:\\myfile.csv","r");

if(fd==NULL)

{

printf("Error");

exit(-1);

}

while(!feof(fd))

{

res=fscanf(fd,"%d,%d,%d",&aux[0],&aux[1],&aux[2]);

if(res==2&&aux[1]==sel)

{

puts("Value ok");

}

}

}

我试图把3 %d在fscanf因为如果行包含超过2个元素我敢肯定,我不需要这条线,但如果该行包含超过3种元素的保留节目没有做任何事情就跑步

我认为这个问题的出现是由于fscanf功能停止时达到'\n',但如何解决,如果我不知道有多少元素包含.csv文件的每一行代码?

2016-02-09

Marco_D

+0

尝试使用fgetc一次读取一个字符。当行有6或7个值时,你的计划是什么? –

+0

考虑使用['fgets'](http://linux.die.net/man/3/fgets)来阅读整行。然后使用['strtok'](http://linux.die.net/man/3/strtok)+ ['strtol'](http://linux.die.net/man/3/strtol)或[' sscanf'](http://linux.die.net/man/3/sscanf)解析出数字。 –

+0

您存储整数的数组也需要a)足够大以保存您愿意支持的线上的大多数整数,或者b)动态分配,例如,与'malloc'。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值