C/C++实现文件读写操作

用C或C++写一个文件读写的小程序!具体要求是:将D盘中文件名为File1.txt的文件写入内存中,然后将内存中的该信息提取并稍作修改(比如将File1.txt中的所有的... 用C或C++写一个文件读写的小程序!
具体要求是:将D盘中文件名为File1.txt的文件写入内存中,然后将内存中的该信息提取并稍作修改(比如将File1.txt中的所有的1改写成2)写入D盘File2.txt文件中。
现在我用的平台是VC6.0的!
在线急等,能正确运行的追加分!
展开
 我来答
luofl1992
2010-08-26 · TA获得超过710个赞
知道小有建树答主
回答量:561
采纳率:0%
帮助的人:581万
展开全部
这个比较简单啊~~
#include <stdio.h>
void main()
{
FILE *fp= fopen("D:\\File1.txt","r"); /*文本方式打开*/
FILE *fout = fopen("D:\\File2.txt","w"); /*文本方式写入*/
char c;
while(!feof(fp))
{
c = fgetc(fp);
if(!feof(fp)) /*双重判断,防止到达文件末尾时最后一个数据被读取两次*/
{
putchar(c); /**/
if('1' == c) c = '2'; /*修改字符1为2*/
fputc(c,fout);
}
}
fclose(fp); /*关闭文件流*/
fclose(fout);
}

/*楼主说的意思不大清楚哦,写入内存之后咋样呢?写入内存比较简单,把上面的fputc那句赋值给一个字符数组或者之类的结构保存就行了
后面是由用户来决定怎么修改还是咋样?*/
fallx
2010-08-26 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:722万
展开全部
这里是一个纯C++读写的例子
#include <fstream>
#include<string>
#include<iostream>
using namespace std;
int main()
{
char fname[256]; //定义读入文件名
int i=0;
cout<<"enter a filename:"<<endl;//输入文件名
cin>>fname;
cout<<"enter file name:"<<endl; //输入要另外输出的文件名,即另存为
ifstream fin(fname); //打开准备读取的文件
ofstream fout(f3,ios::binary); //按二进制打开要写的文件
char sentence[128]; //定义文件读写的变量
if(fin.good())
while(!fin.eof())
{
fin.getline(sentence,128); //读取文件,128个字节
//fin2.read((char *)sentence,sizeof(sentence));//也可以用这种按块的形式,这种读写方法可以实现读取类或其它具体类型结构的量
// cout<<sentence<<endl; //屏幕输出,调试需要
}

// fout2<<sentence<<endl; //输出到另存文件
//fout2.write((char *)sentence,sizeof(sentence));//同上
}
else
cout<<"error!"<<endl; //没有打开文件则出错

//fout.close(); //关闭文件

//fin.close(); //同上
fin.close(); //同上.一定要在打开文件后关闭.不然可能会造成
//不可预测的结果
return 1;

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lieyan2024
2010-08-27 · TA获得超过485个赞
知道小有建树答主
回答量:361
采纳率:100%
帮助的人:473万
展开全部
#include <stdio.h>
#include <malloc.h>

int main(void)
{
FILE *file;
size_t fileSize, i;
unsigned char *fileContent;

// 打开输入文件

file = fopen("input.txt", "rb");
if (file == NULL) {
printf("Failed to open the input file!\n");
return 1;
}

// 计算输入文件大小

fseek(file, 0, SEEK_END);
fileSize = ftell(file);
fseek(file, 0, SEEK_SET);

// 为输入文件申请内存

fileContent = (unsigned char *)malloc(fileSize);

if (fileContent == NULL) {
printf("Not enough memory!\n");
return 2;
}

// 读取整个输入文件的内容到内存中

if (fread(fileContent, 1, fileSize, file) != fileSize) {
printf("Failed to read the input file!\n");
return 3;
}

// 关闭输入文件

fclose(file);

//-------------------------------------------------------------------------

// 处理文件内容

// 比如把1变成2

for (i = 0; i < fileSize; i++)
if (fileContent[i] == '1')
fileContent[i] = '2';

//-------------------------------------------------------------------------

// 打开输出文件

file = fopen("output.txt", "wb");
if (file == NULL) {
printf("Failed to open the ouput file!\n");
return 4;
}

// 写入输出文件

if (fwrite(fileContent, 1, fileSize, file) != fileSize) {
printf("Failed to write the ouput file!\n");
return 5;
}

// 关闭输出文件

fclose(file);

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伤倏臀w
2010-08-26 · TA获得超过1115个赞
知道大有可为答主
回答量:864
采纳率:60%
帮助的人:607万
展开全部
#include "iostream.h"
#include "fstream.h"
void main()
{
int i,j;
unsigned image_s_data;

ifstream fsin("e:\\zxl\\image_s1d1.dat");
ofstream fsout("e:\\zxl\\Result.txt");

//ifstream fsin("e:\\zxl\\image_s.dat",ios::binary);
//ofstream fsout("e:\\zxl\\Result.dat",ios::binary);
for(i=0;i<83;i++)
{

for(j=0;j<83;j++)
{
fsin>>image_s_data;
fsout<<image_s_data<<" ";
//fsin.read((char *)(&image_s_data), sizeof(image_s_data));
//fsout.write((char *)(&image_s_data), sizeof(image_s_data));
}
fsout<<endl;
}
fsin.close();
fsout.close();
}

// 注释中的是ASCII(二进制)格式的输入输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式