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

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';
    return str;
}

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

char line[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));
 }

return 0;
}

C++读取csv文件


代码如下:

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

using namespace std;

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

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

return str;
}

int main()
{
 ifstream fin("test.csv");

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

istringstream sin(line); 
  vector<string> fields; 
  string field;
  while (getline(sin, field, ',')) {
   fields.push_back(field); 
  }

string name = Trim(fields[0]); 
  string age = Trim(fields[1]); 
  string birthday = 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

(0)

相关推荐

  • Lua教程(三):C语言、C++中调用Lua的Table示例

    从写上一篇Lua的文章到现在,已经过去半月有余了,是时候让自己的Lua状态refresh一下了.本教程将介绍Lua的栈及基本栈操作,同时还有如何在C/C++代码里面读取Lua的Table. 理解Lua栈 Lua通过一个"虚拟栈"与C/C++程序进行数据交互,所有的Lua C API都是通过操作这个栈来完成相应的数据通信. Lua的这个"虚拟栈"解决了C/C++程序与Lua程序通信的两大问题: 1.Lua使用垃圾回收,而C/C++需要手动管理内存. 2.Lua使用动态

  • C语言/C++中如何产生随机数

    C语言/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,和time()函数. 需要说明的是,iostream头文件中就有srand函数的定义,不需要再额外引入stdlib.h;而使用time()函数需要引入ctime头文件. 使用rand()函数获取一个随机数如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间.RAND_MAX定义在stdlib.h, 其值为2147483647. 例子

  • Lua教程(四):在Lua中调用C语言、C++的函数

    本教程将介绍如何在Lua里面调用c/c++函数. 在Lua里面调用c/c++函数其实是比较简单,本文将通过两个示例演示具体的做法:一个是求平均数,另一个是打印lua函数的一些参数信息. 最后,本文会介绍如何把这两个函数定义成一个模块,这样lua代码里面就可以不再使用全局的名字空间了. 前言 当我们需要在Lua里面调用c/c++函数时,所有的函数都必须满足以下函数签名: 复制代码 代码如下: typedef int (*lua_CFunction) (lua_State *L); 换句话说,所有的

  • C语言、C++中的union用法总结

    开始的话 已经好长时间没有更新了,对不起自己,更对不起我亲爱的读者,同时也对不起自己开办的这个博客平台.忙,太忙了,忙于找工作,找一份好工作,纠结于去大城市闯呢,还是回到本省的首府城市.大家都在纠结这个问题,也希望大家和我讨论讨论.别的先不说了,都工作这么长时间了,还回过头来总结union,确实有点过分,要是和大家说我一直从事于C++开发,还不懂union,大家可能还真的不信.我们每天都在总结那些看似高端的东西,什么设计模式(当然我也有总结了).重构(后期我也会说的了)了,却忽略了那些最基础,最

  • 马尔可夫链算法(markov算法)的awk、C++、C语言实现代码

    1. 问题描述 马尔可夫链算法用于生成一段随机的英文,其思想非常简单.首先读入数据,然后将读入的数据分成前缀和后缀两部分,通过前缀来随机获取后缀,籍此产生一段可读的随机英文. 为了说明方便,假设我们有如下一段话:   复制代码 代码如下: Show your flowcharts and conceal your tables and I will be mystified. Show your tables and your flowcharts will be obvious. 假设前缀的长

  • 从C语言过渡到C++之基本变化

    说到C++和C语言的区别,大部分人都会想到面向对象和面向过程.然而这种说法并不准确.面向对象和面向过程指的是两种不同的程序设计思想,而C++与C是两种编程语言,难道C++就不能用于面向过程去解决问题吗,当然可以.而面向对象的设计思想也可以用到C语言中去,我之前的文章就涉及过这方面的知识. 我们这个系列就是要抛开编程思想,单纯地从语法的角度介绍一下C++中究竟加入了哪些C语言中没有的功能.希望大家在掌握了C语言之后再来学习这部分内容. 首先,让我们看一段标准的C++代码: // main.cpp

  • 文件上传的几个示例分享【推荐】

    本篇将要和朋友们分享的是几个上传文件的例子和逻辑步奏及自定义个简单的js上传插件我取名为shenniu.upfile-0.0.1.js:近来在讨论组中很有几个朋友咨询上传文件的代码和怎么下载上传的文件,所以写了此篇文章,希望能为朋友们解答一些疑惑或能带来帮助,也谢谢各位多多支持点赞. 以上是个人的看法,下面来正式分享今天的文章吧: 使用iis发布保存上传文件的文件夹 示例A - 普通表单上传文件,Request.Files获取上传文件 示例B - 普通表单上传文件,HttpPostedFileB

  • c语言实现把文件中数据读取并存到数组中

    1.txt 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 2.txt 1 2 3 4 5 2 3 4 5 6 4 5 6 7 8 程序代码: // C++读取文本到数组.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" int readfile1D() { char a[100]; int i; FILE *fp = fopen("1.txt","r"); if(fp =

  • ​python中pandas读取csv文件​时如何省去csv.reader()操作指定列步骤

    优点: 方便,有专门支持读取csv文件的pd.read_csv()函数. 将csv转换成二维列表形式 支持通过列名查找特定列. 相比csv库,事半功倍 1.读取csv文件 import pandas as pd   file="c:\data\test.csv" csvPD=pd.read_csv(file)   df = pd.read_csv('data.csv', encoding='gbk') #指定编码     read_csv()方法参数介绍 filepath_or_buf

  • python读取和保存为excel、csv、txt文件及对DataFrame文件的基本操作指南

    目录 一.对excel文件的处理 1.读取excel文件并将其内容转化DataFrame和矩阵形式 2.将数据写入xlsx文件 3.将数据保存为xlsx文件 4.使用excel对数据进行处理的缺点 二.对csv文件的处理 1.读取csv文件并将其内容转化为DataFrame形式 2.将DataFrame保存为csv文件 3.优缺点 三.对txt文件的处理 1.读取txt文件 2.将数据写入txt文件 3.将数据保存到txt文件 四.对DataFrame文件的基本操作 1.DataFrame的创建

  • python打包压缩、读取指定目录下的指定类型文件

    下面通过代码给大家介绍python打包压缩指定目录下的指定类型文件,具体代码如下所示: import os import datetime import tarfile import fnmatch def find_spe_file(root, patterns=['*'], non_cludedir=[]): for root, dirnames, filenames in os.walk(root): for pattern in patterns: for filename in fil

  • Python读取文件夹下的所有文件实例代码

    Python读取文件夹下的所有文件 os.listdir(path)是得到在path路径下所以文件的名称列表. open(path)是打开某个文件. iter是python的迭代器. 所以读取某文件夹下的所有文件如下: import os path = "D:/Python34/news" #文件夹目录 files= os.listdir(path) #得到文件夹下的所有文件名称 s = [] for file in files: #遍历文件夹 if not os.path.isdir

  • C#文件操作、读取文件、Debug/Trace类用法

    1.文件操作 这段代码在 System.Private.CoreLib 下,对 System.IO.File 中的代码进行精简,供 CLR 使用. 当使用文件时,要提前判断文件路径是否存在,日常项目中要使用到文件的地方应该不少,可以统一一个判断文件是否存在的方法: public static bool Exists(string? path) { try { // 可以将 string? 改成 string if (path == null) return false; if (path.Len

  • Asp.Net 文件操作基类(读取,删除,批量拷贝,删除,写入,获取文件夹大小,文件属性,遍历目录)

    复制代码 代码如下: using System; using System.IO; using System.Text; using System.Data; using System.Web.UI; using System.Web.UI.WebControls; namespace ec { /// <summary> /// 文件操作类 /// </summary> public class FileObj : IDisposable { private bool _alre

  • Python读取一个目录下所有目录和文件的方法

    本文实例讲述了Python读取一个目录下所有目录和文件的方法.分享给大家供大家参考,具体如下: 这里介绍的是刚学python时的一个读取目录的列子,给大家分享下: #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global allFileNum ''' 打印一个目录下的所有文件夹和文件 ''' # 所有文件夹,第一个字段是次目录的级别 dirList = [

  • Aspose.Cells 读取受保护有密码的Excel文件

    最近遇到一个需求,要能够读取受密码保护的Excel内容,之前都是直接读取Excel中的数据,不需要做任何其他的处理. 当Excel双击的时候,需要输入密码,在使用Aspose.Cells 组件读取的时候就会报错 Workbook book = new Workbook(fullFilename, new LoadOptions() { Password="111111" }); Worksheet sheet = book.Worksheets[0]; Cells cells = sh

随机推荐