C++文件输入输出
来源:互联网 发布:linux添加用户组命令 编辑:程序博客网 时间:2024/06/11 16:23
最近在对文件内容进行更新时,用到了C++对文件流的常用操作,感觉对文件的操作是很多C++学习者必须要面临和解决的问题。于是写下这篇博客,希望能和大家一起学习和交流。
在介绍对文件的操作之前,笔者觉得很有必要介绍一下getline函数。
1.getline函数
getline不是C库函数,而是C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束:
(1)到文件结束 (2)遇到函数的定界符 (3)输入达到最大限度
getline语法:
istream &getline( char *buffer, streamsize num );
istream &getline( char *buffer, streamsize num, char delim );
buffer一般为一个字符数组,streamsize参数表示的是一次读入的个数。在使用getline函数时,头文件需要包括#include<istream>,当然使用#inclide<iostream>也是可以的。下面用一段代码来表现getline函数的强大:
#include <iostream.h>
#include<stdlib.h>
#include <iomanip.h>
#include <fstream.h>
const int N=10;
int main()
{
char str[N];
if (!fin)
{
}
while(fin.getline(str,sizeof(str)))
{
}
cout<<endl;
fin.clear();
cin.get();
return 0;
}
printf("请输入program_name:");
getline(cin,program_name);
printf("请输入src:");
getline(cin,src[5]);
2.文件输入输出
io库类型和头文件
头文件 类型
iostream istream , wistream 从流读取数据
iostream, wiostream 读写流
ostream, wostream向流写入数据
ftream ifstream , wisstream 从文件读取数据
ofstream , wofstream 向文件写入数据
fstream , wfstream 读写文件
2.1 .IO对象无拷贝和赋值,eg:
ofstream out1 ,out2;
out1 = out2; //错误,不能对流对象赋值
ofstream printf(ofstream); //错误:不能初始化ofstream参数
out2 = printf(out2); //错误:不能拷贝流对象
2.2 使用文件流对象
ifstream in (ifile); //构造一个ifstream并打开给定文件
ofstream out; //输出文件流未关联任何文件
请看下面两行代码:
ofstream ReadInFile;
ReadInFile.open("SMIL.txt",ios::trunc); ////ios::trunc表示在打开文件前将文件清空,由于是写入,文件不存在则创建
第一行代码定义了一个输出流ReadInFile,第二行代码打开一个SMIL.txt的文件,注意,当文件不存在的时候,会自动创建,在函数中还有另外一个参数ios::trunc,该参数表示在打开文件时对文件清空。当然,如果不想清空文件,也有对应的参数——app,该参数表示在文件末尾直接添加内容。
在对文件操作结束后,一定不要忘记将文件关闭,否则文件流不能关联到另一个文件。
ReadInFile.close(); //这行代码很重要
本文用几个简单的例子对C++的输入输出流做了简单的介绍,文中可能有考虑不全的地方,烦请读者给笔者留言评论,笔者会在第一时间处理大家的消息。
- C#-文件输入输出
- C/C++ 文件输入输出
- C++_文件输入输出
- c 文件输入输出
- 【c++】文件的输入输出
- 文件输入输出(C++)
- C 文件输入输出
- C文件输入输出流
- C语言文件输入输出
- C输入输出与文件
- C/C++文件输入输出
- c语言文件输入输出
- c语言文件输入输出
- C/C++标准输入输出与文件输入输出
- C/C++标准输入输出与文件输入输出
- C/C++标准输入输出与文件输入输出
- C语言文件输入输出函数
- C/C++ 文件输入输出
- 【杭电2124】Repair the Wall
- 【HTML】快速掌握 html 常用标签
- scanf()函数
- CSVs in Python
- 基础知识
- C++文件输入输出
- Java设计模式-工厂模式
- (POJ1325)Machine Schedule(二部图最大匹配)
- r语言之矩形树状图
- Dialogs(对话框)
- hdu5724Chess+SG博弈
- Java NIO使用及原理分析 (一)
- 杭电OJ 5745 La Vie en rose
- android studio recyclerview基础 自定义列表样式