/*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. wordpress中文章发布时间不显示?用get_the_date代替the_date

    今天发现,在主题中部分地方使用the_date函数来显示文章发布的时间时,竟然发生不显示时间的情况,再仔细看了一下这些文章,有些都是经过几次修改和保存的,可能是由于the_date只是显示文章第一次发 ...

  2. Mysql数值类型,小数点后保留两个零

    如有不足请帮忙留言区补充谢谢~ 一,数值类型保留小数点后两个0 在存入数据时,应客户需求数值类型,比如钱数,分数等等需要精确到小数点后几位. 800存入时显示为800.00 方法:在建表时直接定义此数 ...

  3. mvc的视图渲染方式

    ModelAndView ModelAndView vm = new ModelAndView(); //封装要显示在试图上的数据 vm.addObject("msg"," ...

  4. Python-pygame案例小飞机

    import pygame, sys from pygame.locals import * import random '''飞机躲避导弹''' # 玩家 class Player(pygame.s ...

  5. NO.1 MSP-ESP432P4111开箱

    本人准备2020TI杯模拟电子邀请赛,预计参赛可能会使用TI平台,故从某宝购置一块MSP-ESP432P4111 LaunchPad为参赛做准备.TI官网40美刀,但我只能找国内二道贩子买,有点小贵& ...

  6. 第一章-初识AngularJS

    完全使用javascript编写的客户端技术.同其他历史悠久的Web技术配合使用,使Web应用开发比以往更简单,更快捷. Angularjs主要用于构建单页面Web应该.它通过增加开发人员和常见Web ...

  7. [SD.TEAM语录]AC语录

    决定做了就要马上去做,不要有任何犹豫     本站文章为宝宝巴士 SD.Team原创,转载务必在明显处注明:(作者官方网站:宝宝巴士) 转载自[宝宝巴士SuperDo团队] 原文链接: http:// ...

  8. ReentrantLock解析及源码分析

    本文结构 Tips:说明一部分概念及阅读源码需要的基础内容 ReentrantLock简介 公平机制:对于公平机制和非公平机制进行介绍,包含对比 实现:Sync源码解析额,公平和非公平模式的加锁.解锁 ...

  9. Java实现 蓝桥杯 算法训练 Bit Compressor(暴力)

    试题 算法训练 Bit Compressor 问题描述 数据压缩的目的是为了减少存储和交换数据时出现的冗余.这增加了有效数据的比重并提高了传输速率.有一种压缩二进制串的方法是这样的: 将连续的n个1替 ...

  10. Java实现 LeetCode 677 键值映射(字典树)

    677. 键值映射 实现一个 MapSum 类里的两个方法,insert 和 sum. 对于方法 insert,你将得到一对(字符串,整数)的键值对.字符串表示键,整数表示值.如果键已经存在,那么原来 ...