当前位置: 首页 > news >正文

C++读文件(大学考试难度)

#include<fstream>

#include<sstream>

这两个头文件  超重要

先简单解释下

  • fstream —— 文件流,用来 操作文件

  • sstream —— 字符串流,用来 解析/拼接字符串

在后面的 ReadInfo 代码里:

  • ifstream file(filePath); 需要 <fstream>

  • istringstream iss(line); 需要 <sstream>

接下来看具体示例,因该包含了大部分考试会碰到的

示例一:

text文件长这样:

对应读文件代码:

示例二:

text文件长这样:

对应读文件代码:

{
string teamA;//主队名称
int scoreA;//主队得分
int scoreB;//客队得分
string teamB;//客队名称
};struct goal{
string team;//队伍名称
int point;//积分
};// 接下来为读文件函数bool readInfo(string filename, vector<match>& matchs)//引用matchs这个向量{ifstream file(filename); //打开并将文件名filename的文件 读入 fileif (!file.is_open()){
return false;
}struct match temp;while (file >> temp.teamA >> temp.scoreA >> temp.scoreB >>temp.teamB ){
matchs.push_back(temp);
}file.close();return true;
}

示例三:

struct info{string sfzh;//身份证号int ct; //Ct值};//1bool readInfo(string filename, vector<struct info>& infos){ifstream file(filename);if (!file.is_open()) return false; //这个逻辑应该不成立struct info temp;while (file >> temp.sfzh >> temp.ct){infos.push_back(temp);}file.close();return true;}

示例四:

i

#include <iostream>
#include <fstream>
#include <sstream>   // istringstream 所需头文件
#include <string>
#include <vector>
using namespace std;int ReadInfo(const string& filePath, vector<vector<int>>& vecInt2D)
{ifstream file(filePath);   // 打开文件输入流if (!file.is_open()) {     // 判断文件是否成功打开cerr << "无法打开文件: " << filePath << endl;return -1;}string line;while (getline(file, line)) // 按行读取文件内容{vector<int> vecInt;    // 存储当前行的整数// 使用 istringstream 来解析这一行// istringstream 把字符串当作“输入流”处理// 这样我们就可以像从 cin 里提取数据一样,用 >> 运算符依次读取整数istringstream iss(line);  int num;while (iss >> num)     // 不断读取整数,直到行末{vecInt.push_back(num);}vecInt2D.push_back(vecInt); // 把当前行的数据存入二维 vector}file.close(); // 关闭文件return 1;     // 成功返回 1
}

创建一个名为 file 的 ifstream 对象,并尝试打开 filePath 变量所指定路径的文件,以便进行后续的读取操作。

如果文件中的数据不是以空格、制表符或换行符分隔,而是以其他字符分隔(例如逗号),那么您需要使用不同的方法来读取和解析文件内容,例如使用 getline 函数配合 istringstream


文章转载自:

http://G8GKKMjT.xpzkr.cn
http://Oz3S3lIE.xpzkr.cn
http://QshZrNOL.xpzkr.cn
http://ULeI6nDf.xpzkr.cn
http://2rwyEdoA.xpzkr.cn
http://2CGJoGrm.xpzkr.cn
http://CJLviRg1.xpzkr.cn
http://bPSgCzMv.xpzkr.cn
http://FO0a3ysl.xpzkr.cn
http://HzMatH5M.xpzkr.cn
http://K8INUe1m.xpzkr.cn
http://9o5Dx2z8.xpzkr.cn
http://RG9lV7Km.xpzkr.cn
http://NOYei3sR.xpzkr.cn
http://N8fGDkLB.xpzkr.cn
http://pjPz59dX.xpzkr.cn
http://ApzIm20m.xpzkr.cn
http://SuAbIuSO.xpzkr.cn
http://reNT7thx.xpzkr.cn
http://ZG3TfJbQ.xpzkr.cn
http://YChTR8Zj.xpzkr.cn
http://j06CHodh.xpzkr.cn
http://JuJ6qPla.xpzkr.cn
http://VX5Sib5t.xpzkr.cn
http://hgWNkSjU.xpzkr.cn
http://oTArHWor.xpzkr.cn
http://07u4jECC.xpzkr.cn
http://2JprCwBL.xpzkr.cn
http://Hq7kZMhj.xpzkr.cn
http://O7xzmrmD.xpzkr.cn
http://www.dtcms.com/a/373906.html

相关文章:

  • 拆解LinuxI2C驱动之mpu6050
  • Linux--线程
  • 中大型水闸安全监测的关键环节与措施
  • 基于QMkae/CMake配置QT生成的exe图标
  • 安科瑞电动机保护器:赋能化工冶炼行业高效安全生产的智能守护
  • 数据结构之链表(单向链表与双向链表)
  • 学习嵌入式的第三十五天——数据库
  • Coze源码分析-资源库-删除插件-后端源码-错误处理与总结
  • 中级统计师-统计法规-第一章 基本统计法律规范
  • 从日志到防火墙——一次“SQL注入”排查笔记
  • Java全栈开发面试实战:从基础到微服务架构
  • 《小小进阶:小型企业网规划组网与实现》
  • 深度学习——调整学习率
  • MySQL问题7
  • Sealminer A2 224T矿机评测:SHA-256算法,适用于BTC/BCH
  • windows下安装claude code+国产大模型glm4.5接入(无需科学上网)
  • C语言与FPGA(verilog)开发流程对比
  • 5G/6G时代的智能超表面:如何重构无线传播环境?
  • 【3D图像算法技术】如何对3DGS数据进行编辑?
  • Node.js对接即梦AI实现“千军万马”视频
  • Spring Boot Banner
  • 安卓端部署Yolov5目标检测项目全流程
  • 《2025年AI产业发展十大趋势报告》四十六
  • 《普通逻辑》学习记录——普通逻辑的基本规律
  • 彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声
  • [C++刷怪笼]:AVL树--平衡二叉查找树的先驱
  • [概率]Matrix Multiplication
  • 【C++】哈希表实现
  • 方法引用知识
  • gtest全局套件的测试使用