C/C++实现文件读写操作
用C或C++写一个文件读写的小程序!具体要求是:将D盘中文件名为File1.txt的文件写入内存中,然后将内存中的该信息提取并稍作修改(比如将File1.txt中的所有的...
用C或C++写一个文件读写的小程序!
具体要求是:将D盘中文件名为File1.txt的文件写入内存中,然后将内存中的该信息提取并稍作修改(比如将File1.txt中的所有的1改写成2)写入D盘File2.txt文件中。
现在我用的平台是VC6.0的!
在线急等,能正确运行的追加分! 展开
具体要求是:将D盘中文件名为File1.txt的文件写入内存中,然后将内存中的该信息提取并稍作修改(比如将File1.txt中的所有的1改写成2)写入D盘File2.txt文件中。
现在我用的平台是VC6.0的!
在线急等,能正确运行的追加分! 展开
4个回答
展开全部
这个比较简单啊~~
#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那句赋值给一个字符数组或者之类的结构保存就行了
后面是由用户来决定怎么修改还是咋样?*/
#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那句赋值给一个字符数组或者之类的结构保存就行了
后面是由用户来决定怎么修改还是咋样?*/
展开全部
这里是一个纯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;
}
#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;
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;
}
#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;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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(二进制)格式的输入输出
#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(二进制)格式的输入输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询