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烫,请问是啥问题?的主要内容,如果未能解决你的问题,请参考以下文章

Python csv模块(读写文件)

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

c语言读csv

C语言如何把以下格式的文本读出来打印到屏幕上

VSCode无法使用freopen文件输入输出

「C语言」文件的概念与简单数据流的读写函数