zl程序教程

您现在的位置是:首页 >  后端

当前栏目

c语言读取csv文件和c++读取csv文件示例分享

C++文件语言 示例 分享 读取 csv
2023-06-13 09:15:19 时间

C读取csv文件

复制代码代码如下:

#include<stdio.h>
#include<string.h>


char*trim(char*str)
{
   char*p=str;
   while(*p==""||*p=="\t"||*p=="\r"||*p=="\n")
       p++;
   str=p;
   p=str+strlen(str)-1;
   while(*p==""||*p=="\t"||*p=="\r"||*p=="\n")
       --p;
   *(p+1)="\0";
   returnstr;
}

intmain()
{
 FILE*fp=fopen("test.csv","r");
 if(fp==NULL){
  return-1;
 }

 charline[1024];
 while(fgets(line,sizeof(line),fp)){
  //printf("%s",line);

  char*save_ptr;
  char*name=strtok_r(line,",",&save_ptr);
  if(name==NULL){
   return-1;
  }  
  char*age=strtok_r(NULL,",",&save_ptr);
  char*birthday=strtok_r(NULL,",",&save_ptr);
  printf("%s\t%s\t%s\n",trim(name),trim(age),trim(birthday));
 }

 return0;
}

C++读取csv文件

复制代码代码如下:

#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<vector>

usingnamespacestd;

stringTrim(string&str)
{
 str.erase(0,str.find_first_not_of("\t\r\n"));

 str.erase(str.find_last_not_of("\t\r\n")+1);

 returnstr;
}

intmain()
{
 ifstreamfin("test.csv");

 stringline; 
 while(getline(fin,line)){
  //cout<<line<<endl;

  istringstreamsin(line); 
  vector<string>fields; 
  stringfield;
  while(getline(sin,field,",")){
   fields.push_back(field); 
  }

  stringname=Trim(fields[0]); 
  stringage=Trim(fields[1]); 
  stringbirthday=Trim(fields[2]); 
  cout<<name<<"\t"<<age<<"\t"<<birthday<<endl;
 }
}



csv文件
复制代码代码如下:
alice, 22, 1992/03/05
bob, 33, 1981/11/21
cart, 40, 1974/07/13