C++文件I/O示例

原创 2004年10月09日 09:58:00

文章标题:C
原 作 者:querw
原 出 处:www.vczx.com
发 布 者:querw
发布类型:原创
发布日期:2004-10-05
今日浏览:8
总 浏 览:144

// 国庆没事写着玩的,英文很烂,请把注意力集中在代码上,呵呵:)

// c++基于流的文件操作使很多C转过来的程序员在操作文件时还是选择了 FILE*

// :)其实,C++的流操作文件也很方便啊

// 下面这个例子就是文件使用实例代码

#pragma warning(disable:4786)
#include <IOSTREAM>
#include <FSTREAM>
#include <string>
using namespace std;
int main()
{
// using std::cout;
// using std::endl;
cout<<" ********************* C ++ file opration demo ***********************"<<endl;
cout<<"using fstream or ifstream and ofstream"<<endl;
cout<<"fstream derive from istream and ostream, so most of method were defined in"<<endl;
cout<<"istream and ostream"<<endl;
cout<<"By the way, I like C style /"FILE */" indeed. :)"<<endl;

// Input file demo
cout<<endl;
cout<<"****Part 1: Input file demo****"<<endl;

fstream /*ifstream*/ infile;
// antoher way to declare special class or function in a namespace
using std::string;
string strfilename;
cout<<"Input In FileName:"<<endl;
cin>>strfilename;
infile.open(strfilename.c_str(),ios::in/*openmode*/);

// succeed?
if(!infile)
{
 cout<<"Cannot open file:"<<strfilename<<endl;
 return 1;
}

// read a byte
char ch1,ch2;
infile.get(ch1);
ch2 = infile.get();

// read a line
// get(char *,int max_size,char dimiliter) can do the same word as getline()
// but get() doesn't drop the dimiliter,
// use ignore() to drop the dimiliter(the last byte,'/n' by default)

char pszLine[1024];
memset(pszLine,0,1024);
infile.getline(pszLine,1024/*read count*/,'/n'/*read until reach '/n'*/);

// seek function
// seekg means seek for getting use for input file
infile.seekg(0/*offsize*/,ios_base::beg/*seek from ios_base::beg ios_base::cur ios_base::end*/);

// read to a buffer
infile.read(pszLine,1024);

// get readed size
int nReadedSize = infile.gcount();

// tell the position also tellg() and tellp()
// tellg() before read() and tellg() after read() then you can get the readed size
// return -1 if eof() turn true
int nCurPos = infile.tellg();

// test end ?
if(infile.eof())
{
 cout<<"input file reach file end"<<endl;
}

infile.close();

// output file demo
cout<<"****Part 2: Output file demo *****"<<endl;

fstream /*ofstream */outfile;
outfile.open("out.txt",ios::out);
if(!outfile)
{
 cout<<"Cannot open out file out.txt."<<endl;
 return 1;
}

// write a byte
char chout = 'a';
outfile.put(chout);

// write buffer
outfile.write(pszLine,strlen(pszLine));

// like ifstream ,seekp(),tellp()
outfile.seekp(10,ios_base::beg);
char buffer[] = "seekp and write a buffer";
outfile.write(buffer,strlen(buffer));

nCurPos = outfile.tellp();



outfile.close();

return 0;
}

用C++实现文件I/O操作

文件 I/O 在C++中比烤蛋糕简单多了。 在这篇文章里,我会详细解释ASCII和二进制文件的输入输出的每个细节,值得注意的是,所有这些都是用C++完成的。  一、ASCII 输出  为了使用下面的方...
  • jiahehao
  • jiahehao
  • 2007年11月01日 15:51
  • 1652

C# 学习笔记七 文件 与 I/O流

注意:(1)File.Create()方法将返回一个FileStream对象,必须关闭该对象,否则其它方法访问时会提示“文件正被占用”FileStream fs = File.Create(strPa...
  • jiutao_tang
  • jiutao_tang
  • 2011年06月21日 10:50
  • 2802

C++中 I/O流总结

程序的输入是指把输入文件数据传送给程序,程序的输出是指从程序中把输出结果传送给输出文件。C++中输入输出大致上有以下三种: 1)标准I/O------对系统指定的标准设备的输入输出。(eg:从键盘输...
  • x1247600186
  • x1247600186
  • 2014年05月26日 23:58
  • 1187

嵌入式LINUX下I/O资源的实现、管理和操作

作者:wincemobile 转自:http://blog.csdn.net/wincemobile/article/details/5898990 几乎每一种外设都是通过读写设备...
  • whw8007
  • whw8007
  • 2014年02月12日 08:57
  • 639

TCP/IP网络编程 学习笔记_13 --基于I/O复用的服务端

前言:前面我们讲了多进程的并发服务端,只要有客服端连接请求就会创建新进程,这虽然也是一种解决方案,但创建进程是需要付出极大代价的,这需要大量运算和内存空间,而且每个进程间具有独立的内存空间,所以相互间...
  • u010223072
  • u010223072
  • 2015年08月31日 17:58
  • 1305

C++文件流I/O操作:fstream类

一.简介     所谓“文件”,一般是指存在外部介质上的数据的集合,一批数据是以文件的形式存放在外部介质(如磁盘、光盘和U盘)上的,操作系统以文件为单位对数据进行管理。对用户来说,常用的文件有两大类...
  • Henjay724
  • Henjay724
  • 2012年12月20日 18:46
  • 1806

文件I/O和标准I/O的区别

一、先来了解下什么是文件I/O和标准I/O: 文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所...
  • zqixiao_09
  • zqixiao_09
  • 2016年01月01日 10:12
  • 2566

c/c++性能优化--I/O优化(上)

这节本想直接介绍I/O优化的,后来思考一下有必要对常用的I/O操作函数的特点介绍一下,这样要好些。下面就先介绍和I/O有关的库函数(以C99为准) 不同的操作系统有不同的文件管理方式,现行的主要有FA...
  • wangjiaoyu250
  • wangjiaoyu250
  • 2013年07月14日 22:52
  • 3166

python中的文件I/O

读/写文件: 常规操作 读文件:f = open('文件路径',‘r‘ - 读文本文件 ‘rb' - 读二进制文件 encoding = 'utf-8' - 指定读取时的字符编码) ...
  • Ayhan_huang
  • Ayhan_huang
  • 2017年06月13日 20:06
  • 262

C++流之标准I/O流

1、什么是标准I/O? 2、标准I/O的类的继承关系是什么? 3、ios类中几个常用的枚举类是什么? 4、ios类中的成员函数有哪些? 5、什么是格式控制符?...
  • dingyanxxx
  • dingyanxxx
  • 2015年08月09日 20:51
  • 929
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++文件I/O示例
举报原因:
原因补充:

(最多只允许输入30个字)