ca75a_c++_标准IO库-利用流对象把文件内容读取到向量-操作文件
/*ca75a_c++_标准IO库习题练习
习题8.3,8.4,8.6
习题8.9、8.10
ifstream inFile(fileName.c_str());
1>d:\users\txwtech\projects\ca75a\ca75a\ca75a.cpp(28): error C2079: “inFile”使用未定义的 class“std::basic_ifstream<char,std::char_traits<char>>”
1>d:\users\txwtech\projects\ca75a\ca75a\ca75a.cpp(28): error C2440: “初始化”: 无法从“const _Elem *”转换为“int”
//未包含#include <fstream>。
调用的函数参数,能够接收基类(istream)的地方,都能够接受子类(ifstream)
参考:
https://blog.csdn.net/txwtech/article/details/104251103
std::istream& get(std::istream &in)//8.3
get函数也可以接收ifstream
*/
while (getline(inFile, s))//一次读取一行,放在s里面
while(inFile>>s) //>>流输入操作符,一个一个的单词读取,空格作为单词分割的标志
inFile是流对象,inFile绑定了一个文件,把文件内容传递个s
————————————————
/*ca75a_c++_标准IO库习题练习
习题8.3,8.4,8.6
习题8.9、8.10 ifstream inFile(fileName.c_str());
1>d:\users\txwtech\projects\ca75a\ca75a\ca75a.cpp(28): error C2079: “inFile”使用未定义的 class“std::basic_ifstream<char,std::char_traits<char>>”
1>d:\users\txwtech\projects\ca75a\ca75a\ca75a.cpp(28): error C2440: “初始化”: 无法从“const _Elem *”转换为“int” //未包含#include <fstream>。 调用的函数参数,能够接收基类(istream)的地方,都能够接受子类(ifstream)
参考:
https://blog.csdn.net/txwtech/article/details/104251103 std::istream& get(std::istream &in)//8.3
get函数也可以接收ifstream
*/
#include <iostream>
#include <string>
//#include <istream>
#include <fstream>
using namespace std; #include "get.h" int main()
{ cout << "测试新写的函数,请输入数字,或者字母" << endl; //8.4
double dval;
get(cin); //输入什么内容,显示什么内容。输入错误可以有提示 cout << "继续使用cin,输入一个double: " << endl;
cin >> dval;
cout << "您输入的是: " << dval << endl; cout << "习题8.6" << endl; string fileName;
//fileName="aa.txt";
cout << "Enter file name请输入一个文件名:test.txt " << endl;
cin >> fileName;
ifstream inFile(fileName.c_str()); //绑定输入的文件
if (!inFile)
{
cerr << "error:can not open input file" << fileName << endl;
return -;
}
get(inFile); return ;
}
get.cpp
#include "get.h" std::istream& get(std::istream &in)//8.3
{
int ival;
while (in >> ival, !in.eof())//让in.eof()决定是否结束,ctrl+z结束输入
{
if (in.bad())//巨大错误
throw std::runtime_error("IO stream error");
if (in.fail())//判断输入类型是否相同
{
std::cerr << "bad data,try again." << std::endl; //std名称空间
in.clear();//恢复流到正常状态
in.ignore(,'\n');//
continue;
}
std::cout << "输入的数据: " << ival << std::endl;
}
in.clear();//恢复流到正常状态
}
get.h
//#pragma once
#ifndef _GET_H
#define _GET_H //头文件不要用using namesapce std;
#include <iostream>
std::istream& get(std::istream &in); #endif
ca75a_c++_标准IO库-利用流对象把文件内容读取到向量-操作文件的更多相关文章
- ca72a_c++_标准IO库:面向对象的标准库
/*ca72a_c++_标准IO库:面向对象的标准库继承:基类->派生类3个头文件9个标准库类型IO对象不可复制或赋值 ofstream, f--file,文件输出流ostringstream, ...
- 18、标准IO库详解及实例
标准IO库是由Dennis Ritchie于1975年左右编写的,它是Mike Lestbain写的可移植IO库的主要修改版本,2010年以后, 标准IO库几乎没有进行什么修改.标准IO库处理了很多细 ...
- [APUE]标准IO库(下)
一.标准IO的效率 对比以下四个程序的用户CPU.系统CPU与时钟时间对比 程序1:系统IO 程序2:标准IO getc版本 程序3:标准IO fgets版本 结果: [注:该表截取自APUE,上表中 ...
- [APUE]标准IO库(上)
一.流和FILE对象 系统IO都是针对文件描述符,当打开一个文件时,即返回一个文件描述符,然后用该文件描述符来进行下面的操作,而对于标准IO库,它们的操作则是围绕流(stream)进行的. 当打开一个 ...
- C++ Primer 读书笔记: 第8章 标准IO库
第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于 ...
- 文件IO函数和标准IO库的区别
摘自 http://blog.chinaunix.net/uid-26565142-id-3051729.html 1,文件IO函数,在Unix中,有如下5个:open,read,write,lsee ...
- c++ primer 学习杂记3【标准IO库】
第8章 标准IO库 发现书中一个错误,中文版p248 流状态的查询和控制,举了一个代码例子: int ival; // read cin and test only for EOF; loop is ...
- C5 标准IO库:APUE 笔记
C5 :标准IO库 在第三章中,所有IO函数都是围绕文件描述符展开,文件描述符用于后续IO操作.由于文件描述符相关的操作是不带缓冲的IO,需要操作者本人指定缓冲区分配.IO长度等,对设备环境要求一定的 ...
- 高级UNIX环境编程5 标准IO库
标准IO库都围绕流进进行的 <stdio.h><wchar.h> memccpy 一般用汇编写的 ftell/fseek/ftello/fseeko/fgetpos/fsetp ...
随机推荐
- Vue混入的详解
简介 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项.钩子函数合并 ...
- Kubernetes学习笔记(七):访问Pod元数据与Kubernetes API
Downward API 我们已经了解到,使用ConfigMap和Secret向应用传递配置数据,这对于运行前预设的数据是可行的.但是对于那些不能预先知道的,就需要使用Downward API. Do ...
- 前端内网穿透,localtunnel你值得拥有!
一个前端在调试本地页面时,总会有些稀奇古怪的需求,比如产品立刻要看你的页面效果,而此时有没有上线环境折腾给他看,那此时通过内网穿透的方式,实时把你的项目生成一个在线链接丢给他,让他去找那一像素的bug ...
- 【HTTP】Web及网络基础&HTTP基础
HTTP协议访问Web 一.大体访问过程 1. 浏览器地址栏输入URL 2. 浏览器从服务端获取文件资源 3. 浏览器显示Web页面 二.HTTP的版本历史 1. HTTP/0.9 没有作为正式的标准 ...
- Javascript书写位置
1.行内式js(很少使用) 以on开头,如onclick HTML中推荐双引号,JS推荐单引号 2.内嵌式js(常用) <script> alert('hello world'); < ...
- MvvmLight + Microsoft.Extensions.DependencyInjection + WpfApp(.NetCore3.1)
git clone MvvmLight失败,破网络, 就没有直接修改源码的方式来使用了 Nuget安装MvvmLightLibsStd10 使用GalaSoft.MvvmLight.Command命名 ...
- Java-语言基础梳理
1.java命名规范 包名:全小写 类名,接口名:首字母大写 变量名,方法名:第一个单词皆字母小写,后面单词首字母大写 常量名:所有字母都大写 2.变量 2.1 注意事项 作用域:一对{}之间有用 必 ...
- 前端HTML div标签的用法 盒子模型
盒子模型 边框 border -外边距 margin- 内容与边框距离padding[会撑大div边框]- 宽width-高height. div的奇特玩法 1.把div弄成圆形 [css设置bord ...
- Java实现 LeetCode 714 买卖股票的最佳时机含手续费(动态规划 || 迭代法)
714. 买卖股票的最佳时机含手续费 给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 :非负整数 fee 代表了交易股票的手续费用. 你可以无限次地完成交易,但是你每次交 ...
- Java实现 LeetCode 336 回文对
336. 回文对 给定一组唯一的单词, 找出所有不同 的索引对(i, j),使得列表中的两个单词, words[i] + words[j] ,可拼接成回文串. 示例 1: 输入: ["abc ...