c++中如何提取文件每一行的一部分

图片说明
如上图所示的txt文件,我想用C++提取每一行的信息,例如第一行前两个浮点型,最后一个整型分别保存至变量中,最后可以实现,我对每一列的使用,比如求最后一列的平均值,保存的时候我希望保存成浮点型数据。应该怎么实现。

下面是我写的代码,但我的方法是计算每一行的字符个数,提取最后一位,但是面对不同类型的文件,应用性不强,最好能分成三列拆分(有可能有的文件小数位数不同)怎样修改呢,谢谢各位。
int main()
{
Cluster picture1;

cout << "请输入要处理的图像路径:" << endl;

cin >> filename;

file.open(filename);

if (!file.is_open())
{
    cout << "有错误!文件未被打开\n";
}
for (int j = 0; j <100; j++)
{
    for (int i = 0; i <100; i++)
    if (!file.eof())
    {
        getline(file, line);//按行提取文件(以图像左下角开始,从左向右,从下到上遍历)
        int size = line.length();
        char a = line[size - 1];//取出每行中第32个字符
        picture1.set_tu(i, j, a);//把数字存储到数组中
    }
}

4个回答

#include
#include
#include
#include
#include
using namespace std;

vector vec_num;
int main()
{
string filename,line;
cout << "请输入要处理的图像路径:" << endl;

cin >> filename;
ifstream file; 
file.open(filename);

if (!file.is_open())
{
    cout << "有错误!文件未被打开\n";
}

while(getline(file, line))
{
    float first_num,second_num;
    int third_num;
    sscanf(line.c_str(), "%f %f %d", &first_num, &second_num, &third_num);//格式化提取
    cout << first_num << " " << second_num << " " << third_num << endl;//打印一下数据
    //这里假设你把第一列的数据存下来,我这里是用vector存的
    //如果你可能三列都要用可以弄个结构体vector<MyStruct> vec_num;
    vec_num.push_back(first_num);
}

float avg_num = 0.0;//保存计算出来的平均数结果
//遍历vector
vector<float>::iterator it;
for(it = vec_num.begin(); it != vec_num.end(); it++)
{
    avg_num += *it;
}
avg_num = avg_num / vec_num.size();
cout << "第一列平均数是:" << avg_num << endl;

system("pause");
return 0;

}
图片说明

qq423399099
小灸舞 回复qq_35838801: 你重新开个问答好了
大约 3 年之前 回复
qq_35838801
坝离梵天 回复小灸舞: 您好,修改之后编译时出现了error C2664: 'void __thiscall std::basic_ifstream<char,struct std::char_traits<char> >::open(const char *,int)' : cannot convert parameter 1 from 'class std::basic_string<c har,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called 执行 cl.exe 时出错.
3 年多之前 回复
qq_35838801
坝离梵天 回复小灸舞: vector后面有尖括号float是什么意思?
3 年多之前 回复
qq_35838801
坝离梵天 您好,我也遇到了相同的问题,请问可以将此程序C++的完整代码,告诉我吗?
3 年多之前 回复
qq423399099
小灸舞 上面的include要包含string,vector,iostream,fstream ; 那个vector声明也是,vector后面有尖括号float
3 年多之前 回复

这里每一行都是用空格来分开三个数的嘛,所以你可以用空格来区分呀
for (int j = 0; j <100; j++)
{
for (int i = 0; i <100; i++)
if (!file.eof())
{
getline(file, line);//按行提取文件(以图像左下角开始,从左向右,从下到上遍历)
int size = line.length();
//得到最后一个数字可以这样读取
int count=0;
for(int t=0;t<line.size;t++)
{
if(line[size]==' ')//判断是空格
{
count+=1;
if(count==3)
{
char[]st1;
for(int tt=t+1;tt<size;tt++)
{
strcat(st1,line[size]);
}

                        break;
                    }
                }
            }
    char a = line[size - 1];//取出每行中第32个字符
    picture1.set_tu(i, j, a);//把数字存储到数组中
}

}
//然后写个函数吧数组转化成数字就可以了,代码我就不写了。
好久没写过c++都完了怎么写了呵呵
有关于java的问题尽管问我

先读取文件保存在字符串中 然后用String.split(" ");对字符串 进行切割保存 可以上网查一下split的使用方法

你可以取出一行的数据,然后以空格作为分隔符还拆分字符串,得到各个子串的内容。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++中如何提取文件每一行的一部分
-
c#中怎样向代码文件的某部分插入几行代码??
-
C#怎么给DataGrid中的行赋值
-
用C++读取文件中特定行的某几列数据并输出到另一个文件
-
c语言文件删除部分内容和修改指定内容
-
C语言 用fgets()或fscanf()分别读取两个文件流出错
-
如何c语言打开二进制带状矩阵的.dat文件
-
怎样使用c++读取txt文件中的所有字符并输出,并在控制台排版
-
请问使用命令行参数如何打开文件?
-
有关string类字符串拆分的问题
-
C#中Parallel.For并行处理中读取文件时出现的错误
-
MFC 文本文件如何实现修改指定行
-
这是linux的makefile的部分内容 运行make的时候 报错第17行 即head main kernel mm fs lib 报错内容是makefile17 ***遗漏分割符 。停止 请教大神
-
C#遍历XML文件节点内容
-
freopen函数只读入文件得一部分
-
asp.net如何获取Datalist中某一行数据?
-
C#创建简单数据库,有没有什么方法把CSV文件直接作为数据库,而不是导入数据库
-
将含有指针的结构体写入文件,关闭程序后如何再次读写
-
学习不久的c++,想要用类做这个作业,自己写的一部分,但总是出错,很苦恼,有没有大佬写出来参考一下。
-
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
史上最详细的IDEA优雅整合Maven+SSM框架(详细思路+附带源码)
网上很多整合SSM博客文章并不能让初探ssm的同学思路完全的清晰,可以试着关掉整合教程,摇两下头骨,哈一大口气,就在万事具备的时候,开整,这个时候你可能思路全无 ~中招了咩~ ,还有一些同学依旧在使用eclipse或者Myeclipse开发,我想对这些朋友说IDEA 的编译速度很快,人生苦短,来不及解释了,直接上手idea吧。这篇文章每一步搭建过程都测试过了,应该不会有什么差错。本文章还有个比较优秀的特点,就是idea的使用,基本上关于idea的操作都算是比较详细的,所以不用太担心不会撸idea!最后,本文
从入门到精通,Java学习路线导航
引言 最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。 Java学习路线 当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方面,我也不是很了解。 基础阶段 首先是基础阶段,在基础阶段,我们必须掌握Java基础,Mysql数据库,Ora...
鸿蒙 OS 的到来,能为我们改变什么?
作者 | 屠敏 出品 | CSDN(ID:CSDNnews) 「鸿蒙初辟原无姓,打破顽空需悟空」,在国产自研操作系统短缺的窘境之下,天惊一声雷,「鸿蒙」踏风来。 回首上个月的技术圈,最值得业界浮称流说的无疑是 8 月 9 日华为开发者大会 2019(简称 HDC 2019)上公开的「鸿蒙 OS」。作为一款基于微内核的全场景分布式 OS,「鸿蒙 OS」肩负打破传统 IoT 操作系统的责任,同时也成...
100 个网络基础知识普及,看完成半个网络高手
1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类型和协议。 2)OSI 参考模型的层次是什么? 有 7 个 OSI 层:物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。 3)什么是骨干网? 骨干网络是集中的基础设施,旨在将不同的路由和数据分发到各种网络。它还处理带宽管理和各种通道。 4)什么是 LAN? LAN 是局域网的缩...
C语言实现推箱子游戏
很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2019年9月28日 作者:ZackSock 也不说太多多余的话了,先看一下效果图: 游戏中的人物、箱子、墙壁、球都是字符构成的。通过wasd键移动,规则的话就是推箱子的规则,也就不多说了。 二、代...
面试官,不要再问我三次握手和四次挥手
三次握手和四次挥手是各个公司常见的考点,也具有一定的水平区分度,也被一些面试官作为热身题。很多小伙伴说这个问题刚开始回答的挺好,但是后面越回答越冒冷汗,最后就歇菜了。 见过比较典型的面试场景是这样的: 面试官:请介绍下三次握手 求职者:第一次握手就是客户端给服务器端发送一个报文,第二次就是服务器收到报文之后,会应答一个报文给客户端,第三次握手就是客户端收到报文后再给服务器发送一个报文,三次握手就...
德国 IT 薪酬大揭秘!
作者 |德国IT那些事责编 | 伍杏玲“所有脱离工龄、级别、职位、经验、城市以及裙带关系来谈论工资,都是耍流氓!”——佛洛依德一般来说IT行业公司,资历是按等级划分的...
500行代码,教你用python写个微信飞机大战
这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!让他们的左手 / 右手有节奏有韵律的朝着同一个方向来回移动起来! 这是史诗级的发明,是浓墨重彩的一笔,是…… 在一阵抽搐后,我结束了游戏,瞬时觉得一切都索然无味,正在我进入贤者模式时,突然想到,如果我可以让更多人已不同的方式体会到这种美轮美奂的感觉岂不美哉? 所以我打开电脑,创建了一个 `plan_game.py`……
别在学习框架了,那些让你起飞的计算机基础知识。
我之前里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。当然,在面试中也经常会被问到,特别是对于应届生,对于春秋招,也可以看看我前阵子写过的文章历经两个月,我的秋招之路结束了!。也有读者经常问的计算...
不就是SELECT COUNT语句吗,竟然能被面试官虐的体无完肤
数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增删改查操作中,使用最频繁的就是查询操作。而在所有查询操作中,统计数量操作更是经常被用到。 关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT。 但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
如何优化MySQL千万级大表,我写了6000字的解读
这是学习笔记的第2138篇文章 千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。 从一开始脑海里开始也是火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。 既然要吃透这个问题,我们势必要回到本源,我把这个...
面试最后一问:你有什么问题想问我吗?
尽管,我们之前分享了这么多关于面试的主题: 高薪必备的一些Spring Boot高级面试题 面试必问:设计模式遵循的面向对象设计原则! 面试必问:怎么保证缓存与数据库的双写一致性? 27道高频Spring面试题,你能答对几个? 唠唠面试常问的:面向对象六大原则 一文高效图解二叉树面试题 Java面试中最高频的那20%知识点是什么? 百度面试题:求数组最大值 ... 然而,最后这个90%可见...
python 程序员进阶之路:从新手到高手的100个模块
在知乎和CSDN的圈子里,经常看到、听到一些 python 初学者说,学完基础语法后,不知道该学什么,学了也不知道怎么用,一脸的茫然。近日,CSDN的公众号推送了一篇博客,题目叫做《迷思:Python 学到什么程度可以面试工作?》,真实反映了 python 程序员在成长过程中的一些困惑。
Python——画一棵漂亮的樱花树(不同种樱花+玫瑰+圣诞树喔)
最近翻到一篇知乎,上面有不少用Python(大多是turtle库)绘制的树图,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成) one 樱花树 动态生成樱花 效果图(这个是动态的): 实现代码 import turtle as T import random import time # 画樱花的躯干(60,t) def Tree(branch, ...
程序员成长的四个简单技巧,你 get 了吗?
最近拜读了“阿里工程师的自我修养”手册,12 位技术专家分享生涯感悟来帮助我们这些菜鸡更好的成长,度过中年危机,我收获颇多,其中有不少的方法技巧和我正在使用的,这让我觉得我做的这些事情是对的,我走在了一条正确的道路上。我们程序员这个行业不像医生、律师等其他行业,那些行业可谓是越老越吃香,但是我们不一样,我们不能享受越老越吃香的待遇,因为互联网发展太快,技术不断的更新,就我工作的这短短几年时间就有不...
Java 8:一文掌握 Lambda 表达式
本文将介绍 Java 8 新增的 Lambda 表达式,包括 Lambda 表达式的常见用法以及方法引用的用法,并对 Lambda 表达式的原理进行分析,最后对 Lambda 表达式的优缺点进行一个总结。
Python中几个非常有趣的模块
最近学习Python,发现了许多有趣的模块。感觉开启了新世界的大门,因为我也不是对所有模块都熟悉,所以今天不是讲代码。 1、ItChat 这是一个微信自动回复的模块,因为我微信一直无法登陆,所以也没有测试这个模块的功能。这里只是简单介绍一下。 使用流程大致就是: 登陆微信 注册监听 响应监听 结束 而我就卡在了登陆微信上面,注册监听的话代码也是非常简单的。它可以监听多种数据,文字、图片、视频等...
2020年秋招后端面经
主要包含华为,网易互娱,广联达,科大讯飞,浦发,中兴,上海农商行这些已经拿offer的,还有京东(不小心把二面时间换了一下,等通知等三个月了),虾皮(一面挂),顺丰(sp专场一面之后没消息,秋招第一个面试),携程的一些面经 文章目录1.自我介绍2.项目介绍3.接口和抽象类的区别相同点:不同点:4.多态5.重载和覆盖6.spring1.动态代理基于接口基于继承2.AOP2.1AOP3.IOC5.SS...
MySQL常用命令/用户管理/数据库备份与恢复
MySQL密码设置与更改: 设置root用户密码: [root@linux ~]# mysqladmin -uroot password "123456" 更改root用户密码: [root@linux ~]# mysqladmin -uroot -p'123456' password '654321' 登录数据库更改密码: MariaDB [(none)]&gt; use mysql; Ma...
相关热词 c# mysql插入 c# sha256 加密 c#窗体上的叉添加事件 c#打印图片文件 c#後台調前台js c#控制台美化 c# 标记 浮点型 c#获取当前的农历日期 c# 构造函数重载 c# 页面功能注释