Tag: csv

scanf(“%d”,char *) – char-as-int格式字符串?

char-as-number的格式字符串修饰符是什么? 我想使用sscanf读取一个永远不会超过255(实际上更少)的数字到一个unsigned char类型变量中。 使用典型 char source[] = “x32″; char separator; unsigned char dest; int len; len = sscanf(source,”%c%d”,&separator,&dest); // validate and proceed… 我收到了预期的警告:sscanf的参数4是char *类型,int *是预期的。 据我了解的规格,char没有修饰符(比如%sd表示简短,或%lld表示64位长) 危险吗? (溢出只会溢出(翻转)变量,还是会在分配的空间外写?) 有没有比分配临时int变量更美妙的方法? ……或者你会建议一个完全不同的方法吗?

使用strtok读取csv文件

我试图在C中使用strtok来读取csv文件,并将内容存储到struct Game的数组中。 我的代码如下所示: FILE *fp; int i = 0; if((fp=fopen(“Games.csv”,”r”))==NULL) { printf(“Can’t open file.\n”); exit(1); } rewind(fp); char buff[1024]; fgets(buff,1024,fp); char* delimiter = “,”; while(fgets(buff, 1024, (FILE*)fp)!=NULL && i<5){ Game[i].ProductID= strtok(buff, ","); Game[i].ProductName = strtok(NULL, delimiter); Game[i].Publisher = strtok(NULL, delimiter); Game[i].Genre = strtok(NULL, delimiter); Game[i].Taxable = atoi(strtok(NULL, delimiter)); Game[i].price = strtok(NULL, delimiter); Game[i].Quantity = atoi(strtok(NULL, […]

使用c检测文件上的重复行

我有一个大约(15000-25000)行(固定大小)的csv文件,我想知道如何使用c语言检测重复的行。 输出的一个例子是这样的: 0123456789;CUST098WZAX;35 我没有记忆或时间限制,所以我想要最简单的解决方案。 谢谢你的帮助。

在C中写入CSV文件

我的C程序生成这些数据。 我需要将它放入CSV文件中,以便其他程序可以使用它。 我怎样才能做到这一点? Student1 Mark1 Mark2 Mark3 Mark4 Mark5 Student2 Mark1 Mark2 Mark3 Mark4 Mark5 Student3 Mark1 Mark2 Mark3 Mark4 Mark5 Student4 Mark1 Mark2 Mark3 Mark4 Mark5 Student5 Mark1 Mark2 Mark3 Mark4 Mark5

从strtok()获取零长度字符串

我有一个包含数据的CSV文件 value;name;test;etc 我试图通过使用strtok(string, “;”)进行拆分。 但是,此文件可以包含零长度数据,如下所示: value;;test;etc 哪个strtok()跳过。 有没有办法可以避免strtok像这样跳过零长度数据?

用于读取未知大小的csv文件(仅使用浮点数填充)的c ++程序,其中列数为常量(但未知)

想知道是否有人可以试着建立一个程序,从csv文件中读取大小未知的浮动数据块。 我已经在MATLAB中编写了这个,但是想要编译和分发它,以便转向c ++。 我只是学习并尝试阅读这个开始 7,5,1989 2,4,2312 来自文本文件。 代码到目前为止。 // Read in CSV // // Alex Byasse #include #include #include #include #include #include int main() { unsigned int number_of_lines = 0; FILE *infile = fopen(“textread.csv”, “r”); int ch; int c = 0; bool tmp = true; while (EOF != (ch=getc(infile))){ if(‘,’ == ch){ ++c; } if […]

如何在支持空字段的同时使用sscanf解析逗号分隔字符串中的字段?

我有一个逗号分隔的字符串,可能包含空字段。 例如: 1,2,,4 使用基本的 sscanf(string,”%[^,],%[^,],%[^,],%[^,],%[^,]”, &val1, &val2, &val3, &val4); 我得到空字段之前的所有值,以及从空字段开始的意外结果。 当我从sscanf()中删除空字段的表达式时, sscanf(string,”%[^,],%[^,],,%[^,],%[^,]”, &val1, &val2, &val3, &val4); 一切都很好。 由于我不知道何时会得到一个空字段,有没有办法重写表达式以优雅地处理空字段?

使用带动态分配的C从CSV读取和保存值

在底部的编辑(我把它写成编辑而不是它自己的问题,因为它是如此相关): 我正在编写一个CSV阅读器,它应该将所有值保存为大型多维数组中的字符。 在之前的post中,我被警告过要么对我的缩减代码过于含糊,所以我要发布更多内容。 我想为它的长度道歉,因为我仍在试图估计这个网站上的长度是多少。 最终,该程序将成为我正在创建的用于执行数据分析的头文件的头条新闻。 我用于此程序的头文件是: #include #include #include 我遇到的问题是阅读器似乎在名为read_csv()的函数内工作。 我知道这是因为放在该函数中的printf()语句。 当我在main()中printf()多维,字符数组’buffer’时,数据无法正确显示。 在main()中,第一列将正确打印,但接下来的三列不会。 此外,我的目标是能够读取任何带有最多20个字符的单元格的MxN CSV文件。 使用malloc()创建通用代码是此任务的下一个目标。 我的main()结构如下: int main(){ FILE *f; char fname[20]; int i, j; printf(“enter name of csv file : “) ; scanf(“%s”,fname) ; f = fopen(fname, “r”); //find row/col int find_c_r[2]; int * pfrc = &find_c_r[0]; pfrc = find_col_row(f); printf(“Find_c_r[0] = %d […]

在C中解析CSV文件

是否有一个库可用于解析C中的CSV文件。我在Linux系统上。 我知道这个,但它是在C ++中,我需要在C中的东西。如果有人已经完成它,不想经历调试和测试的痛苦。

用scanf读取逗号分隔的输入

我有以下输入: AG23,VU,Blablublablu,8 IE22,VU,FooBlaFooBlaFoo,3 and so on… 我希望它使用像这样的代码“解析”scanf: char sem[5]; char type[5]; char title[80]; int value; while(scanf(“%s,%s,%s,%d”, sem, type, title, &value) == 4) { //do something with the read line values } 但代码的执行给了我: illegale instruction你怎么读这样的逗号分隔文件?