最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c語言讀取csv文件和c++讀取csv文件示例分享

 更新時間:2014年03月11日 14:34:40   作者:  
這篇文章主要介紹了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

相關(guān)文章

  • C語言程序的編譯與預處理詳解

    C語言程序的編譯與預處理詳解

    這篇文章主要介紹了C語言程序的編譯與預處理,包括介紹了C和C++混合編程的情況,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-10-10
  • QT實現(xiàn)串口通信的完整步驟

    QT實現(xiàn)串口通信的完整步驟

    如果用qt寫程序作為上位機,然后通過和usb和下位機通信的時候,就需要用到qt中的串口通信了,下面這篇文章主要給大家介紹了關(guān)于QT實現(xiàn)串口通信的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • C++非遞歸隊列實現(xiàn)二叉樹的廣度優(yōu)先遍歷

    C++非遞歸隊列實現(xiàn)二叉樹的廣度優(yōu)先遍歷

    這篇文章主要介紹了C++非遞歸隊列實現(xiàn)二叉樹的廣度優(yōu)先遍歷,實例分析了遍歷二叉樹相關(guān)算法技巧,并附帶了兩個相關(guān)算法實例,需要的朋友可以參考下
    2015-07-07
  • c語言常見圖片格式判斷實例

    c語言常見圖片格式判斷實例

    這篇文章介紹了c語言常見圖片格式判斷實例,有需要的朋友可以參考一下
    2013-09-09
  • C語言掃雷詳細代碼分步實現(xiàn)流程

    C語言掃雷詳細代碼分步實現(xiàn)流程

    掃雷是電腦上很經(jīng)典的游戲,特意去網(wǎng)上玩了一會,幾次調(diào)試之后,發(fā)現(xiàn)這個比三子棋要復雜一些,尤其是空白展開算法上和堵截玩家有的一拼,與實際游戲差別較大,不能使用光標,下面來詳解每一步分析
    2022-02-02
  • 基于opencv的行人檢測(支持圖片視頻)

    基于opencv的行人檢測(支持圖片視頻)

    本文主要介紹了基于opencv的行人檢測(支持圖片視頻),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C語言入門篇--四大常量(字面,const修飾,宏,枚舉)及標識符

    C語言入門篇--四大常量(字面,const修飾,宏,枚舉)及標識符

    本篇文章是c語言基礎(chǔ)篇,主要講述一下常量,常量即不可被直接修改的量(const修飾的常變量可間接修改,后續(xù)文章會繼續(xù)說明)請大家持續(xù)關(guān)注腳本之家
    2021-08-08
  • C++中string替換所有指定字符串的方法

    C++中string替換所有指定字符串的方法

    這篇文章主要介紹了C++中string替換所有指定字符串的實例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 詳解C++虛函數(shù)中多態(tài)性的實現(xiàn)原理

    詳解C++虛函數(shù)中多態(tài)性的實現(xiàn)原理

    C++是一種面向?qū)ο蟮木幊陶Z言,在C++中,虛函數(shù)是實現(xiàn)多態(tài)性的關(guān)鍵。本文就來探討一下C++虛函數(shù)中多態(tài)性的實現(xiàn)原理及其在面向?qū)ο缶幊讨械膽冒?/div> 2023-05-05
  • C++中防止頭文件重復包含的幾種方法

    C++中防止頭文件重復包含的幾種方法

    在 C/C++ 編程中,當一個項目比較大時,往往都是分文件,這時候有可能不小心把同一個頭文件 include 多次,或者頭文件嵌套包含,這些會導致一系列的問題,如符號重定義、編譯錯誤等,因此,防止頭文件的重復包含是至關(guān)重要的,本文給大家介紹了C++中防止頭文件重復包含的兩種方法
    2024-05-05

最新評論

天台县| 信丰县| 五大连池市| 璧山县| 兰西县| 嵊州市| 仙桃市| 随州市| 永泰县| 商河县| 布拖县| 遂平县| 大冶市| 盘山县| 邢台县| 勐海县| 新丰县| 西丰县| 峨山| 克拉玛依市| 台东市| 湖口县| 五家渠市| 洞头县| 顺平县| 雅安市| 射阳县| 怀柔区| 大关县| 大同县| 田阳县| 博野县| 岗巴县| 汝南县| 额济纳旗| 五指山市| 凤城市| 修武县| 昭通市| 鲜城| 瑞昌市|