【问题描述】
建立两个磁盘文件f1.txt和f2.txt,编写程序实现以下工作:
(1)从文件in.txt输入20个整数,分别存放在两个磁盘文件f1.txt和f2.txt中(每个文件中放10个整数);
(2)从f1.txt读入10个数,然后存放到f2.txt文件原有数据的后面;
(3)从f2.txt中读入20个整数,将它们按照从小到大的顺序存放到f2.txt(不保留原来的数据)。
【输入形式】
11 22 55 66 33 44 77 88 99 10 20 50 60 30 40 70 80 90 222 111
【输出文件】
输出文件为当前目录下的f1.txt和f2.txt。
【样例输入】
11 22 55 66 33 44 77 88 99 10 20 50 60 30 40 70 80 90 222 111
【样例输出】
输出文件f1.txt内容为:
11 22 55 66 33 44 77 88 99 10
输出文件f2.txt内容为:
10 11 20 22 30 33 40 44 50 55 60 66 70 77 80 88 90 99 111 222
【样例说明】输入文件为当前目录下的f1.txt,输出文件为当前目录下的f2.txt。
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int in[20],x;
void read_in(){
ifstream ifs("in.txt",ios::in);
for(int i=0;i<20;++i){
ifs>>in[i];
}
ifs.close();
}
void save_in(){
ofstream ofs1("f1.txt",ios::out);
ofstream ofs2("f2.txt",ios::out);
for(int i=0;i<10;++i){
ofs1<<in[i]<<" ";
ofs2<<in[i+10]<<" ";
}
ofs1.close(),ofs2.close();
}
void app(){
ifstream ifs("f1.txt",ios::in);
ofstream ofs("f2.txt",ios::out|ios::app);
for(int i=0;i<10;++i){
ifs>>x;
ofs<<x<<" ";
}
}
void Sort(){
ifstream ifs("f2.txt",ios::in);
for(int i=0;i<20;++i){
ifs>>in[i];
}
ifs.close();
sort(in,in+20);
ofstream ofs("f2.txt",ios::out);
for(int i=0;i<20;++i){
ofs<<in[i]<<" ";
}
ofs.close();
}
int main(){
read_in();
save_in();
app();
Sort();
}
【问题描述】
编写程序将一个指定文件中某一字符串替换为另一个字符串。要求:(1)被替换字符串若有多个,均要被替换;(2)指定的被替换字符串,大小写无关。
【输入形式】
给定文件名为filein.txt。从控制台输入两行字符串(不含空格,行末尾都有回车换行符),分别表示被替换的字符串和替换字符串。
【输出形式】
将替换后的结果输出到文件fileout.txt中。
【样例输入】
从控制台输入两行字符串:
in
out
文件filein.txt的内容为:
#include <stdio.h>
void main()
{
FILE * IN;
if((IN=fopen(“in.txt”,“r”))==NULL)
{
printf(“Can’t open in.txt!”);
return;
}
fclose(IN);
}
【样例输出】
文件fileout.txt的内容应为:
#outclude <stdio.h>
void maout()
{
FILE * out;
if((out=fopen(“out.txt”,“r”))==NULL)
{
prouttf(“Can’t open out.txt!”);
return;
}
fclose(out);
}
【样例说明】
输入的被替换字符串为in,替换字符串为out,即将文件filein.txt中的所有in字符串(包括iN、In、IN字符串)全部替换为out字符串,并输出保存到文件fileout.txt中。
#include<bits/stdc++.h>
using namespace std;
char a[205],b[205],line[2000],c;
int cnt,alen,linelen;
void solve(){
ifstream ifs("filein.txt",ios::in);
ofstream ofs("fileout.txt",ios::out);
while(ifs.getline(line,2000)){
linelen=strlen(line);
for(int i=0;i<linelen;++i){
bool flag=true;
if(i+alen>linelen){
flag=false;
}else{
for(int j=0;j<alen;++j){
char c1=toupper(a[j]),c2=toupper(line[j+i]);
if(c1!=c2){
flag=false;
}
}
}
if(flag){
ofs<<b;
i+=alen-1;
}else{
ofs<<line[i];
}
}
ofs<<endl;
}
ifs.close(),ofs.close();
}
int main(){
cin>>a>>b;
alen=strlen(a);
solve();
}