c++读取csv(c读取csv文件)
大家好!今天让创意岭的小编来大家介绍下关于c++读取csv的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
ChatGPT国内免费在线使用,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,越精准,写出的就越详细,有微信小程序端、在线网页版、PC客户端
本文目录:
一、用c语言读取csv文件中的一列数据并求这些数据的平均值
#include <stdio.h>
void main()
{
int i,n=0;
float x[1000],val;
FILE *fp;
if((fp=fopen("test.csv","rt"))==NULL)
{
printf("cannot open file\n");
return;
}
while (1)
{
if(fscanf(fp,"%f,", &val) == EOF) break;
x[n]=val;
n++;
}
fclose(fp);
val=0;
for(i=0;i<n;i++)
val+=x[i];
if(n>0) val=val/n;
printf("%g\n",val);
}
二、vs2010 c程序读取csv文件
csv是按逗号分隔的
如果确定有且只有两列
那么循环用
fscanf(fp, "%f,%f", &a[i], &b[i]);
即可
其中fp为打开的文件指针 a b是你的目标数组
i为读入的下标
判断fscanf返回值 或者读后判断feof可以确定终止条件
三、c# 读取csv文件 内容含逗号
#region 读Csv,静态方法/// <summary>
/// 静态方法,读取规则的2维表的Csv成DataSet
/// </summary>
/// <param name="fileFullPath">全路径,包括文件名</param>
/// <returns>DataSet</returns>
public static DataTable Csv2DataSet(string fileFullPath)
{
int intColCount = 0;
bool blnFlag = true;
DataTable mydt = new DataTable("myTableName");
DataColumn mydc;
DataRow mydr;
string strpath = fileFullPath; //cvs文件路径
string strline;
string[] aryline;
System.IO.StreamReader mysr = new System.IO.StreamReader(strpath, Encoding.Default);
while ((strline = mysr.ReadLine()) != null)
{
List<string> ss = new List<string>();
aryline = strline.Split(new char[] { ',' });
if (strline.IndexOf(""") > -1)
{
for (int i = 0; i < aryline.Length; i++)
{
if (aryline[i].Contains("""))
{
ss.Add(aryline[i] + "," + aryline[++i]);
if (i == aryline.Length - 1)
{
break;
}
}
else
{
ss.Add(aryline[i]);
}
}
}
else
{
ss.AddRange(aryline);
}
if (blnFlag)
{
blnFlag = false;
intColCount = ss.Count;
for (int i = 0; i < intColCount; i++)
{
mydc = new DataColumn(ss[i]);
mydt.Columns.Add(mydc);
}
}
mydr = mydt.NewRow();
for (int i = 0; i < intColCount; i++)
{
mydr[i] = ss[i];
}
mydt.Rows.Add(mydr);
}
return mydt;
}
#endregion
四、C语言 fgets函数读取CSV文件如何从第二行开始,第一行是表头。
第一次获取的数据不要就可以了,何必这么麻烦。
函数原型:
char *fgets(char *buf, int bufsize, FILE *stream);
参数:
*buf: 字符型指针,指向用来存储所得数据的地址。
bufsize: 整型数据,指明存储数据的大小。
*stream: 文件结构体指针,将要读取的文件流。
返回值:
成功,则返回第一个参数buf;
在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则buf保持原来的内容,返回NULL;
如果发生读入错误,error指示器被设置,返回NULL,buf的值可能被改变。
例子:
#include<string.h>#include<stdio.h>
int main ( void )
{
FILE*stream;
char string[]="Thisisatest";
char msg[20];
/*openafileforupdate*/
stream=fopen("DUMMY.FIL","w+");
/*writeastringintothefile*/
fwrite(string,strlen(string),1,stream);
/*seektothestartofthefile*/
fseek(stream,0,SEEK_SET);
/*readastringfromthefile*/
fgets(msg,strlen(string)+1,stream);
/*displaythestring*/
printf("%s",msg);
fclose(stream);
return 0;
}
以上就是关于c++读取csv相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读:
ChatGPT中文版VSCode插件(vscodec++插件)