/*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的更多相关文章

  1. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

    迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...

  2. C++文件流类与文件流对象

    文件流是以外存文件为输入输出对象的数据流.输出文件流是从内存流向外存文件的数据,输入文件流是从外存文件流向内存的数据.每一个文件流都有一个内存缓冲区与之对应. 请区分文件流与文件的概念,不用误以为文件 ...

  3. java操作文件流对象

    所有流对象 InputStream 字节流         FileInputStream 字节流 专门读写非文本文件的         BufferedInputStream 高效流 OutPutS ...

  4. 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 ...

  5. .net学习之集合、foreach原理、Hashtable、Path类、File类、Directory类、文件流FileStream类、压缩流GZipStream、拷贝大文件、序列化和反序列化

    1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里 ...

  6. IO(Input Output)流__字符流

    一.IO流简述------用于操作数据的 IO流用来处理设备之间的数据传输; Java对数据的操作是通过流的方式; Java用于操作流的对象都是在IO包中; 流按操作数据分为: 字节流(通用)和字符流 ...

  7. NET中级课--文件,流,序列化1

    1.对于机器的角度来看,任何文件都是二进制的0和1. 2.   位:bit,一个1或0就是1位. 字节:byte,每8位一个字节.一个字节的范围就是00000000到1111111,换成10进制就是0 ...

  8. C++中输入输出流及文件流操作笔记

    1.流的控制 iomanip          在使用格式化I/O时应包含此头文件.    stdiostream   用于混合使用C和C + +的I/O机制时,例如想将C程序转变为C++程序 2.类 ...

  9. 从零开始学C++之IO流类库(二):文件流(fstream, ifstream, ofstream)的打开关闭、流状态

    一.文件流 ofstream,由ostream派生而来,用于写文件 ifstream,由istream派生而来, 用于读文件 fstream,由iostream派生而来,用于读写文件 二.打开文件 说 ...

随机推荐

  1. node进程间通信

    作为一名合格的程序猿/媛,对于进程.线程还是有必要了解一点的,本文将从下面几个方向进行梳理,尽量做到知其然并知其所以然: 进程和线程的概念和关系 进程演进 进程间通信 理解底层基础,助力上层应用 进程 ...

  2. leetcode350之实现求解两数组交集(包含重复元素)

    给定两个数组,编写一个函数来计算它们的交集. 说明: 输出结果中每个元素出现的次数,应与元素在两个数组中出现的次数一致. 我们可以不考虑输出结果的顺序 def binarySearch(nums, t ...

  3. Spring Cloud 学习笔记一

    一.spring cloud 搭建注册中心(Eureka server) 1.spring cloud中提供了多种分步式服务组件,其都依赖于注册中心(eureka),注册中心的服务者与发现者都通过Eu ...

  4. 这才是你需要的最基础的.Net基础面试题(通俗易懂,最基础的.Net)2

    51. 委托回调静态方法和实例方法有何区别? 当一个实例方法被调用时,需要通过实例对象来访问,绑定一个实例方法到委托必须同时让委托得到实例方法的代码段和实例对象的信息,这样在委托被回调时候.NET才能 ...

  5. Java实现 洛谷 导弹拦截

    题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的导弹 ...

  6. Java实现蓝桥杯 历届试题 k倍区间

    历届试题 k倍区间 时间限制:2.0s 内存限制:256.0MB 问题描述 给定一个长度为N的数列,A1, A2, - AN,如果其中一段连续的子序列Ai, Ai+1, - Aj(i <= j) ...

  7. Java实现派(Pie, NWERC 2006, LA 3635)

    题目 有F+1个人来分N个圆形派,每个人得到的必须是一整块派,而不是几块拼在一起,且面积要相同.求每个人最多能得到多大面积的派(不必是圆形). 输入的第一行为数据组数T.每组数据的第一行为两个整数N和 ...

  8. Java实现 蓝桥杯VIP 算法训练 字符串逆序

    问题描述 给定一个字符串,将这个串的所有字母逆序后输出. 输入格式 输入包含一个字符串,长度不超过100,字符串中不含空格. 输出格式 输出包含一个字符串,为上面字符串的逆序. 样例输入 tsinse ...

  9. Java实现 LeetCode 232 用栈实现队列

    232. 用栈实现队列 使用栈实现队列的下列操作: push(x) – 将一个元素放入队列的尾部. pop() – 从队列首部移除元素. peek() – 返回队列首部的元素. empty() – 返 ...

  10. 第三届蓝桥杯JavaC组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1. 填算式 [结果填空] (满分11分) 看这个算式: ☆☆☆ + ☆☆☆ = ☆☆☆ 如果每个五角星代表 1 ~ 9 的不同的数字. ...