C语言--如何读取 csv 文件里的数据?用户输入:巧克力, 系统读取csv文件里巧克力对应的牌子和价格,并输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言--如何读取 csv 文件里的数据?用户输入:巧克力, 系统读取csv文件里巧克力对应的牌子和价格,并输出相关的知识,希望对你有一定的参考价值。

谢谢大家指教了

参考技术A 像普通文本一样打开,然后读取里面的字符串再自己作分隔处理。
CSV文件格式是以逗号(,)或者双引号“”引起每个字段再以逗号(,)分隔的,你用记事本打印CSV文件看一下就知道是什么格式了追问

我是想要用户输入产品名称, 然后系统找到对应的产品并输出它的价格请高手修改,谢谢了

fp = fopen("test.csv","r");
while((c=fgetc(fp)) != EOF)

fscanf(fp,"%s",&check);
if(strcmp(in,check)==0)
memset(check,0x00,sizeof(check));
out=check;
printf ("product: %s \n", out);

追答

按你的说法,应该是CSV中的某一列为产品名称(如第一列),那你读出文件内容查询第一行第一列看是不是输入的名称,不是再查第二行;CSV每一行是以\r\n为线束的,找第N个\r\n就表示第N行,列也同理;思路给出了,这么简单的代码自己尝试写写,多调试一点就明白了。

不过像你提的需求需要频繁对数据作增删改操作的不建议用文件操作,建议用access数据库

c语言读csv

我想从一个csv文件中读取每条记录的某几个数据,请问如何实现 最好给出例子程序

参考技术A //随便写了一个,只能取到抛砖引玉的效果,时间有限。如果有不明白的地方再和我联系吧
#define MAXCHAR 100
int main()

FILE *pb;
int i,num = 0,j = 0;
char pchar[MAXCHAR];
char **ppstr;
char *pstr,*ppchar;
memset(pchar, 0, 100);
pb = fopen("D:\\pb.csv","r");
if (pb == NULL)

printf("error!");
return;

ppstr = (char **)malloc(5*sizeof(char *));//这个最多可以存5条数据
pstr = (char *)malloc(5*20);//最多5条数据,每个数据不超过20-1=19
for (i = 0; i < 5; i++)

ppstr[i] = pstr + i*20;

memset(pstr, 0 ,100);
fseek(pb, 0, SEEK_SET);
fread(pchar, 1, 100, pb);
ppchar = pchar;
i = 0;
while (*ppchar)

if (*ppchar == 0x2c)//csv文件中一条数据和另外一条数据之间分隔符0x2c

memcpy(ppstr[j], pchar+num,i - num);
j++;
num = i+1;

if (*ppchar == 0x0a)//CSV文件中的换行符

memcpy(ppstr[j], pchar+num,i - num);
j++;
num = i+1;

i++;
ppchar++;

for (i = 0; i < j; i++)

printf("%s\n", ppstr[i]);

free(pstr);
free(ppstr);
return;

以上是关于C语言--如何读取 csv 文件里的数据?用户输入:巧克力, 系统读取csv文件里巧克力对应的牌子和价格,并输出的主要内容,如果未能解决你的问题,请参考以下文章

C语言怎么读取CSV里面的数据?

如何将vb中的数据写入csv文件?

想用vs2010的c,读取excel里的数字,怎么读取呢

c语言,关于读取csv文件的数据,(一行有四列)显示在屏幕。下面的代码:列数据

如何读取CSV文件后合并内容

VB 读取 CSV文件内容写到EXCEL里是内容是空的