ca74a_c++__文件流对象的使用-用来读写文件ifstream
/*ca74a_c++__文件流对象的使用-用来读写文件
将文件流对象绑定到文件上
检查文件是否打开成功
将文件流与新文件重新绑定
清楚文件流的状态
infile.close();//关闭流
infile.clear();//恢复流的状态,不然infile依然停留在infile.eof的位置。不能使用。
eof: end of file
ifstream infile("one.txt");//,定义infile文件流对象,直接绑定one.txt
//也可以如下写法,但要用c风格file.c_str(),这个c++保留了c风格的方法
ifstream infile2(file.c_str());//c++风格又变回c风格字符串,绑定并打开one.txt
ifstream infile3;//先定义流对象,没有绑定文件
infile3.open("one.txt");//用open方式绑定one.txt
//if (infile3)//判断打开文件是否成功
if (!infile3)//判断打开文件是否错误
{
cerr << "打开文件失败: " <<file<< endl;
return -1;
}
vector<string> files;
string ss1;
file.push_back("one.txt"); //files少写了一个s,就会C2664
error C2664: “void std::basic_string<char,std::char_traits<char>,std::allocator<char>>::push_back(const _Elem)”: 无法将参数 1 从“const char [8]”转换为“const _Elem”
1> with
welcome to discuss
txwtech@163.com
*/
/*ca74a_c++__文件流对象的使用-用来读写文件
将文件流对象绑定到文件上
检查文件是否打开成功
将文件流与新文件重新绑定
清楚文件流的状态
infile.close();//关闭流
infile.clear();//恢复流的状态,不然infile依然停留在infile.eof的位置。不能使用。
eof: end of file ifstream infile("one.txt");//,定义infile文件流对象,直接绑定one.txt
//也可以如下写法,但要用c风格file.c_str(),这个c++保留了c风格的方法
ifstream infile2(file.c_str());//c++风格又变回c风格字符串,绑定并打开one.txt ifstream infile3;//先定义流对象,没有绑定文件 infile3.open("one.txt");//用open方式绑定one.txt
//if (infile3)//判断打开文件是否成功
if (!infile3)//判断打开文件是否错误
{
cerr << "打开文件失败: " <<file<< endl;
return -1;
} vector<string> files;
string ss1;
file.push_back("one.txt"); //files少写了一个s,就会C2664 error C2664: “void std::basic_string<char,std::char_traits<char>,std::allocator<char>>::push_back(const _Elem)”: 无法将参数 1 从“const char [8]”转换为“const _Elem”
1> with
welcome to discuss
txwtech@163.com
*/ #include <iostream>
#include <fstream>//文件流
#include <string>
#include <vector>
using namespace std;
void process(string s)
{
cout << s ; } int main()
{
ofstream outfile("test.txt");//创建一个文件,c风格的字符串,变成c++的string
outfile << "hello file!";//写入内容
outfile.close();//关闭文件 string file("one.txt");//表示file="one.txt";
ifstream (); ifstream infile("one.txt");//,定义infile文件流对象,直接绑定one.txt
//也可以如下写法,但要用c风格file.c_str(),这个c++保留了c风格的方法
ifstream infile2(file.c_str());//c++风格又变回c风格字符串,绑定并打开one.txt
infile2.close();//关闭流对象 //或者
ifstream infile3;//先定义流对象,没有绑定文件 infile3.open("one.txt");//用open方式绑定one.txt
//if (infile3)//判断打开文件是否成功
if (!infile3)//判断打开文件是否错误
{
cerr << "打开文件失败: " <<file<< endl;
return -;
} //或者 infile3.open(file.c_str());方法
infile3.close();
string s; while (infile >> s) //把内容读取到字符串中
{
cout << s;
if (!infile.eof())//如果没有都到结束符,就添加逗号.eof:end of file
cout << ",";
} cout << endl;
infile.close();//关闭流
infile.clear();//恢复流的状态,不然infile依然停留在infile.eof的位置。不能使用。
//cout << "读取到的内容:" << s << endl; //再次使用infile
string file2 = "two.txt";
string s2;
infile.open(file2.c_str());
if (!infile)//判断打开文件是否错误
{
cerr << "打开文件失败: " << file2 << endl;
return -;
}
while (infile >> s2)
{
cout << s2;
if (!infile.eof())
cout << ",";
}
cout << endl;
infile.close();
infile.clear(); //例子2:
cout << endl;
cout << "vector方式打开文件" << endl;
vector<string> files;
string ss1;
files.push_back("one.txt");
files.push_back("two.txt");
files.push_back("tt1.txt");
files.push_back("three.txt");
files.push_back("test.txt"); vector<string>::const_iterator it = files.begin();
while (it != files.end())
{
ifstream input2(it->c_str()); //打开vector的文件
if (!input2)
{
cerr << "打开失败!" << *it<<endl;
//break;//要么停止打开
input2.clear();//要么先清除流,继续打开
++it;
continue; }
while (input2 >> ss1)
{ process(ss1);
if (!input2.eof())
cout << ",";
}
cout << endl;
input2.close();
input2.clear();
++it; } return ; }
ca74a_c++__文件流对象的使用-用来读写文件ifstream的更多相关文章
- C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭
迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...
- C++文件流类与文件流对象
文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件 ...
- java操作文件流对象
所有流对象 InputStream 字节流 FileInputStream 字节流 专门读写非文本文件的 BufferedInputStream 高效流 OutPutS ...
- 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 ...
- .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化
1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...
- IO(Input Output)流__字符流
一.IO流简述------用于操作数据的 IO流用来处理设备之间的数据传输; Java对数据的操作是通过流的方式; Java用于操作流的对象都是在IO包中; 流按操作数据分为: 字节流(通用)和字符流 ...
- NET中级课--文件,流,序列化1
1.对于机器的角度来看,任何文件都是二进制的0和1. 2. 位:bit,一个1或0就是1位. 字节:byte,每8位一个字节.一个字节的范围就是00000000到1111111,换成10进制就是0 ...
- C++中输入输出流及文件流操作笔记
1.流的控制 iomanip 在使用格式化I/O时应包含此头文件. stdiostream 用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类 ...
- 从零开始学C++之IO流类库(二):文件流(fstream, ifstream, ofstream)的打开关闭、流状态
一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...
随机推荐
- 项目readme文件目录生成工具 treer
生成目录的工具呢有tree和treer,但是tree不知道怎么忽略node_modules文件夹, 而treer就简单了,下面就是基本的命令了 其中-i是指忽略xxx, -e是指导出 安装 npm i ...
- [批处理教程之Shell]002.Linux 常用命令大全
这一次收集的是比较基础的 Linux 命令,其实 Linux 命令未必每个都要记住,只要在用到时能查阅到需要的命令的用法. 系统信息 *.显示机器的处理器架构(1)arch *.显示机器的处理器架构( ...
- LDA模型笔记
“LDA(Latent Dirichlet Allocation)模型,模型主要解决文档处理领域的问题,比如文章主题分类.文章检测.相似度分析.文本分段和文档检索等问题.LDA主题模型是一个三层贝叶斯 ...
- Rocket - util - PrefixSum
https://mp.weixin.qq.com/s/G2vLP-ncoJzSOgxGGEJkfA 简单介绍PrefixSum的实现. 1. 基本介绍 把一个序列从前向后逐 ...
- Java实现 LeetCode 830 较大分组的位置(暴力模拟)
830. 较大分组的位置 在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组. 例如,在字符串 S = "abbxxxxzyy" 中,就含有 "a ...
- Java实现 LeetCode 781 森林中的兔子(分析题)
781. 森林中的兔子 森林中,每个兔子都有颜色.其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色.我们将这些回答放在 answers 数组里. 返回森林中兔子的最少数量. 示例: ...
- Java实现 蓝桥杯VIP 算法训练 比赛安排
问题描述 设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛.设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛. 输入格式 输入 ...
- Java实现 LeetCode 264 丑数 II(二)
264. 丑数 II 编写一个程序,找出第 n 个丑数. 丑数就是只包含质因数 2, 3, 5 的正整数. 示例: 输入: n = 10 输出: 12 解释: 1, 2, 3, 4, 5, 6, 8, ...
- Java实现 LeetCode 113 路径总和 II
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- java实现显示为树形
** 显示为树形** 树形结构应用十分广泛. 下面这段代码根据用户添加的数据,在内存中构建一个逻辑上等价的树形结构. 通过ShowTree() 可以把它显示为控制中的样子. 其中: a.add('a' ...