c语言读写csv文件问题,输出不出来,用f11看说buf烫,请问是啥问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言读写csv文件问题,输出不出来,用f11看说buf烫,请问是啥问题?相关的知识,希望对你有一定的参考价值。
参考技术A 结构体data中的成员nam定义成了字符,而应该是字符串类型,改为:char nam[100];
这样才能保存字符串,注意100的空间根据字符串实际大小情况调整,合适的数值。
另外,结构体数组的下标最好从0开始,要不浪费一块内存,比如:
for(i=0;i<r_n;i++)追问
改完之后只能输出这部分
追答看不清楚图片,发清楚点
追问不好意思
参考技术B struct中name变量需要定义成数组以便存放字符串用%s读入追问改完是这个样子
sscanf("buf,"%d%s%f%d",&line1[i].num,line1[i].nam,&line1[i].pri,&line1[i].amo);
追问不写空格么?
追答不写空格默认是空格、换行、制表符分隔,比写空格好
追问已经解决了
谢谢您
本回答被提问者采纳 参考技术C 你用记事本打开csv,看看里面的内容就知道了。追问不好意思。我不是很明白。是切割符不对吗
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文件问题,输出不出来,用f11看说buf烫,请问是啥问题?的主要内容,如果未能解决你的问题,请参考以下文章