C语言的文件操作
通过定义两个文件类型的指针, 利用C库的文件操作函数,(fopen,,)对文件进行打开、关闭、读写操作
然后利用getc一次从输入流stdin读取一个字符,putc再把这个字符写到输出流stdout
最后进行end of file检测
#include<stdio.h>
#include<stdlib.h>
int main (int argc, char* argv[])
{
FILE *in, *out;
int ch;
if(argc != 3)
{
fprintf(stderr, "请输入格式:copyfile sourcefile dircfile \n");
exit(EXIT_FAILURE);
}
if( (in = fopen(argv[1],"rb")) == NULL) //可读的二进制文件
{
fprintf(stderr, "打开文件失败 %s\n", argv[1] );
exit(EXIT_FAILURE);
}
if((out =fopen(argv[2],"wb")) == NULL)
{
fprintf(stderr, "打开文件失败 %s\n", argv[2] );
fclose(in);
exit(EXIT_FAILURE);
}
while(ch = getc(in) != EOF)
{
if(putc(ch,out) == EOF)
{
break;
}
}
if(ferror(in))
printf("读取文件%s 失败\n",argv[1] );
if(ferror(out))
printf("读取文件%s 失败\n",argv[2] );
printf("successful copy file");
return 0;
}
// cmd终端下运行 file.exe source.exe dir.exe
C++文件操作
C++通过 ifstream ofstream 类,定义对象,调用相应的方法就可以实现同样的功能。
#include <fstream>
#include <iostream>
using namespace std;
int main(int argc ,char* argv[])
{
ifstream in; //文件输入流对象
ofstream out; //文件输出流对象
//或者使用构造函数 ofstream out("test.txt");
//写操作
out.open("test.txt");
if(!out)
{
cout<<"open file failed"<<endl;
return 0;
}
for(int i=0;i<10;i++)
{
out<<i; //数据流出到out对象的文件
}
out<<endl;
out.close();
//读操作
in.open("test.txt");
if(!in)
{
cout<<"open file failed"<<endl;
return 0;
}
char ch;
while(in >> ch) //把文件流入ch
{
cout << ch; //再流出到终端
}
in.close();
return 0;
}
ofstream out(“test.txt”, ios::app);
ios::in 可读
ios::out 可写
ios::binary 以二进制形式打开
ios::app 写入的数据将追加到文件末尾
ios::trunk 删除文件原来已存在的内容
ios::nocreat 如果不存在将无法打开
ios::noreplece 如果不存在 试图用open打开将返回一个错误。