pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何使用逗號分隔值讀寫文本文件

How to read-write into/from text file with comma separated values(如何使用逗號分隔值讀寫文本文件)
本文介紹了如何使用逗號分隔值讀寫文本文件的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

如果我的文件是這樣用逗號分隔的值,我如何從文件中讀取數(shù)據(jù)

How do I read data from a file if my file is like this with comma separated values

1, 2, 3, 4, 5

6, 7, 8, 9, 10



讀取文件后,我想將數(shù)據(jù)寫回與上述相同格式的其他文件中.

and after reading the file, I want to write the data back into other file as same format above.

我可以獲得總行數(shù),使用

I can get total number of lines, using

string line;
while(!file.eof()){
      getline(file,line);
      numlines++;
    }
    numline--; // remove the last empty line

但是我怎么知道一行/一行中的總位數(shù)??

but how can I know total number of digits in a row/line ??

我也有整數(shù)向量來存儲數(shù)據(jù).所以,我想讀取第一行,然后計算該行中元素的總數(shù),這里是 5 (1,2,3,4,5) 并將它們存儲在數(shù)組/向量中,然后讀取下一行并將它們存儲在向量中以此類推,直到達(dá)到 EOF.

I also have vector of ints to store the data. So, I want to read the first line and then count total number of elements in that line, here 5 (1,2,3,4,5) and store them in array/vector, and read next line and store them in vector again and so on till I reach EOF.

然后,我想將數(shù)據(jù)寫入文件,再次,我想這將完成將數(shù)據(jù)寫入文件的工作,

Then, I want to write the data to file, again, I guess this will do the job of writing data to file,

numOfCols=1;
for(int i = 0; i < vector.size(); i++)
{
    file << vector.at(i);
    if((numOfCols<5) file << ",";//print comma (,)
    if((i+1)%5==0)
    {
                  file << endl;//print newline after 5th value
                  numOfCols=1;//start from column 1 again, for the next line
    }
    numOfCols++;
}
file << endl;// last new line

所以,我的主要問題是如何從帶有逗號分隔值的文件中讀取數(shù)據(jù)??

So, my main problem is how to read the data from file with comma separated values ??

謝謝

推薦答案

第一步:不要這樣做:

while(!file.eof())
{
    getline(file,line);
    numlines++;
}
numline--; 

在您嘗試閱讀它之前,EOF 是不正確的.標(biāo)準(zhǔn)模式是:

The EOF is not true until you try and read past it. The standard pattern is:

while(getline(file,line))
{
    ++numline;
}

另請注意,std::getline() 可以選擇采用第三個參數(shù).這是要突破的角色.默認(rèn)情況下,這是行終止符,但您可以指定逗號.

Also note that std::getline() can optionally take a third parameter. This is the character to break on. By default this is the line terminator but you can specify a comma.

while(getline(file,line))
{
    std::stringstream   linestream(line);
    std::string         value;

    while(getline(linestream,value,','))
    {
        std::cout << "Value(" << value << ")
";
    }
    std::cout << "Line Finished" << std::endl;

}

如果將所有值存儲在單個向量中,則使用固定寬度將它們打印出來.然后我會做這樣的事情.

If you store all the values in a single vector then print them out using a fixed width. Then I would do something like this.

struct LineWriter
{
        LineWriter(std::ostream& str,int size)
                :m_str(str)
                ,m_size(size)
                ,m_current(0)
        {}

        // The std::copy() does assignement to an iterator.
        // This looks like this  (*result) = <value>;
        // So overide the operator * and the operator = to
        LineWriter& operator*() {return *this;}   
        void operator=(int val)
        {
                ++m_current;
                m_str << val << (((m_current % m_size) == 0)?"
":",");
        }

        // std::copy() increments the iterator. But this is not usfull here
        // so just implement too empty methods to handle the increment.
        void operator++()       {}
        void operator++(int)    {}

        // Local data.
        std::ostream&           m_str;
        int const               m_size;
        int                     m_current;
};

void printCommaSepFixedSizeLinesFromVector(std::vector const& data,int linesize)
{
    std::copy(data.begin(),data.end(),LineWriter(std::cout,linesize));
}

這篇關(guān)于如何使用逗號分隔值讀寫文本文件的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 防渗膜厂家|养殖防渗膜|水产养殖防渗膜-泰安佳路通工程材料有限公司 | 电子书导航网_电子书之家_电子书大全_最新电子书分享发布平台 | 台湾Apex减速机_APEX行星减速机_台湾精锐减速机厂家代理【现货】-杭州摩森机电 | 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 除尘布袋_液体过滤袋_针刺毡滤料-杭州辉龙过滤技术有限公司 | 集装袋吨袋生产厂家-噸袋廠傢-塑料编织袋-纸塑复合袋-二手吨袋-太空袋-曹县建烨包装 | 散热器-电子散热器-型材散热器-电源散热片-镇江新区宏图电子散热片厂家 | 上海单片机培训|重庆曙海培训分支机构—CortexM3+uC/OS培训班,北京linux培训,Windows驱动开发培训|上海IC版图设计,西安linux培训,北京汽车电子EMC培训,ARM培训,MTK培训,Android培训 | 成都思迪机电技术研究所-四川成都思迪编码器 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 色谱柱-淋洗液罐-巴罗克试剂槽-巴氏吸管-5ml样品瓶-SBS液氮冻存管-上海希言科学仪器有限公司 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 焦作网 WWW.JZRB.COM| 苏州西朗门业-欧盟CE|莱茵UL双认证的快速卷帘门品牌厂家 | 超声波成孔成槽质量检测仪-压浆机-桥梁预应力智能张拉设备-上海硕冠检测设备有限公司 | 深圳货架厂家_金丽声精品货架_广东金丽声展示设备有限公司官网 | 温州富欧金属封头-不锈钢封头厂家 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 精密线材测试仪-电线电缆检测仪-苏州欣硕电子科技有限公司 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 泰国专线_泰国物流专线_广州到泰国物流公司-泰廊曼国际 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 沈阳缠绕包装机厂家直销-沈阳海鹞托盘缠绕包装机价格 | 我车网|我关心的汽车资讯_汽车图片_汽车生活! | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | Brotu | 关注AI,Web3.0,VR/AR,GPT,元宇宙区块链数字产业 | 内六角扳手「厂家」-温州市威豪五金工具有限公司| 二维运动混料机,加热型混料机,干粉混料机-南京腾阳干燥设备厂 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 |