C++Primer Plus第六章分支语句和逻辑运算:文件的打开操作

2024-05-14 22:44

本文主要是介绍C++Primer Plus第六章分支语句和逻辑运算:文件的打开操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文本数据比如下下面的用于测试
18 19 18.5 13.5 14
16 19.5 20 18 12 18.5
17.5
需要注意的是在17.5,也就是组后一个数据后面需要加一个空格,不然最后一个数据会丢弃.导致处理的数据错误


#pragma region sumafile.cpp---程序清单6.16
//程序清单6.15
//sumafile.cpp -- functions with an array argument
//提前在当前工程下建立一个文件,就是需要手输入的名字的文本
//里面可以写实几个数据做测试
#if 1
#include <iostream>
#include<fstream>	//for file I/O
#include<cstdlib>	//exit()
const int SIZE = 60;
int main()
{using namespace std;char filename[SIZE];ifstream inFile;cout << "请输入文件的名字:";cin.getline(filename, SIZE);inFile.open(filename);if (!inFile.is_open()){cout << "无法打开文件 " << filename << endl;cout << "程序终止。";exit(EXIT_FAILURE);}double value;double sum = 0.0;int count = 0;	//读取目录次数inFile >> value;//获取第一个值while (inFile.good())//读取正常没有遇到EOF,文件最后要加一个空格,不然最有一个会丢失{++count;sum += value;inFile >> value; //get next value}if (inFile.eof()){cout << "读到文件未了.\n";}else if (inFile.fail()){cout << "输入因数据不匹配而终止。\n";}else{cout << "输入终止,原因不明。\n";}if (count == 0){cout << "未处理数据\n";}else{cout << "读到条数:" << count << endl;cout << "Sum: " << sum << endl;cout << "Average: " << sum / count << endl;}inFile.close();return 0;
}
#endif 
#pragma endregion

这里还添加了几个异常的处理情况,比如打开文件失败,读取的数据错误,还有位置的错误的情况进行了处理

这篇关于C++Primer Plus第六章分支语句和逻辑运算:文件的打开操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990065

相关文章

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

SpringBoot操作spark处理hdfs文件的操作方法

《SpringBoot操作spark处理hdfs文件的操作方法》本文介绍了如何使用SpringBoot操作Spark处理HDFS文件,包括导入依赖、配置Spark信息、编写Controller和Ser... 目录SpringBoot操作spark处理hdfs文件1、导入依赖2、配置spark信息3、cont

解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题

《解决mybatis-plus-boot-starter与mybatis-spring-boot-starter的错误问题》本文主要讲述了在使用MyBatis和MyBatis-Plus时遇到的绑定异常... 目录myBATis-plus-boot-starpythonter与mybatis-spring-b

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

使用JavaScript将PDF页面中的标注扁平化的操作指南

《使用JavaScript将PDF页面中的标注扁平化的操作指南》扁平化(flatten)操作可以将标注作为矢量图形包含在PDF页面的内容中,使其不可编辑,DynamsoftDocumentViewer... 目录使用Dynamsoft Document Viewer打开一个PDF文件并启用标注添加功能扁平化

JavaScript DOM操作与事件处理方法

《JavaScriptDOM操作与事件处理方法》本文通过一系列代码片段,详细介绍了如何使用JavaScript进行DOM操作、事件处理、属性操作、内容操作、尺寸和位置获取,以及实现简单的动画效果,涵... 目录前言1. 类名操作代码片段代码解析2. 属性操作代码片段代码解析3. 内容操作代码片段代码解析4.

SpringBoot使用Apache POI库读取Excel文件的操作详解

《SpringBoot使用ApachePOI库读取Excel文件的操作详解》在日常开发中,我们经常需要处理Excel文件中的数据,无论是从数据库导入数据、处理数据报表,还是批量生成数据,都可能会遇到... 目录项目背景依赖导入读取Excel模板的实现代码实现代码解析ExcelDemoInfoDTO 数据传输

Python使用asyncio实现异步操作的示例

《Python使用asyncio实现异步操作的示例》本文主要介绍了Python使用asyncio实现异步操作的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录1. 基础概念2. 实现异步 I/O 的步骤2.1 定义异步函数2.2 使用 await 等待异

在 VSCode 中配置 C++ 开发环境的详细教程

《在VSCode中配置C++开发环境的详细教程》本文详细介绍了如何在VisualStudioCode(VSCode)中配置C++开发环境,包括安装必要的工具、配置编译器、设置调试环境等步骤,通... 目录如何在 VSCode 中配置 C++ 开发环境:详细教程1. 什么是 VSCode?2. 安装 VSCo