使用文件操作函数fopen即可创建文件,使用文件操作函数fprintf即可修改文件内容。
1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。
2、例程:
#include
int i,a[100];
int main(){
FILE * fp1 = fopen("input.txt", "r");//打开输入文件
FILE * fp2 = fopen("output.txt", "w");//打开输出文件
if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
rturn 0;
}
for(i=0;fscanf(fp1,"%d",a+i)!=EOF;i++);//从输入文件连续读取整数到数组a
for(;i--;)fscanf(fp2,"%d ",a[i]);//把数组a逆序写入到输出文件当中
fclose(fp1);//关闭输入文件
fclose(fp2);//关闭输出文件,相当于保存
return 0;
}
#include
#include
using namespace std;
class Book
{
char name[20];
char isbn[20];
int number;
public:
void Input();
void ModifyNum();
void Show();
};//Book类的定义
void Book::Input()
{
cout<<"输入:";
cin>>name>>isbn>>number;
}
void Book::ModifyNum()
{
cout<<"修改库存:";
cin>>number;
}
void Book::Show()
{
cout<
void main()
{
//记录的输入以及写入文件:
ofstream out("book.txt");
Book cbook;
cbook.Input();
out.write((char *)&cbook, sizeof(Book));
out.close();
//从文件读入记录,并且修改记录、保存修改至文件:
Book temp1;
fstream file("book.txt");
file.read((char *)&temp1, sizeof(Book));
temp1.ModifyNum();
file.seekp(0,ios::beg);
file.write((char *)&temp1, sizeof(Book));
file.close();
//读取文件记录:
Book temp2;
fstream in("book.txt");
in.read((char *)&temp2, sizeof(Book));
temp2.Show();
in.close();
}
没什么思路,好像是只能不追加,重写一遍!
使用r+打开,具有写权限,原来的数据还在,写入时才会覆盖,没覆盖的也不变
如果用w,w+等,都会销毁原来的数据,从新写入
比如已有文件中数据abcde
用r+打开在开头写入字母z之后,文件内容变为zbcde
如果带w的方式,就只剩z了
fa