【项目1 - 小玩文件】
(1)下面程序的功能是统计文本文件abc.txt中的字符个数,请填空将程序补充完整。
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#ff6666;">#include <iostream>
#include <cstdlib>
#include _____________ // (1)
using namespace std;
int main()
{
fstream file;
file.open("abc.txt", _________); // (2)
if(!file) {
cout<<"abc.txt can’t open."<<endl;
exit(1);
}
char ch;
int i=0;
while( _____________) // (3)
{
file.get(ch);
_____________; // (4)
}
cout<<"Character: "<<i<<endl;
file._____________;// (5)
return 0;
}</span>
(2)下面程序的功能是将文本文件abc.txt中的所有行加上行号后写到newabc.txt文件中,请填空将程序补充完整。
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#ff6666;">#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
fstream outfile,infile;
infile.open("abc.txt",_________); // (1)
if(!infile) {
cout<<"Can’t open the file."<<endl;
abort();
}
outfile.open("newabc.txt",______);//(2)
if(!outfile) {
cout<<"Can’t open the file."<<endl;
abort();
}
char buf[80];
int i=1;
while(____________) // (3)
{
infile.____________; // (4)
outfile<<________<<": "<<buf<<endl; //(5)
}
infile.close();
outfile.close();
return 0;
}</span>
(3)用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数;
代码:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cctype>
using namespace std;
int main(){
fstream infile;
char file[20];
cin>>file;
infile.open(file,ios::in);
if(!infile){
printf("Can't open the file!\n");
abort();
}
char c;
int out[36];
char my[10000];
memset(out,0,sizeof(out));
string in="abcdefghijklmnopqrstuvwxyz0123456789";
while(!infile.eof()){
infile.getline(my,10000);
for(int k=0;my[k]!='\0';k++){
c=towlower(my[k]);
for(int i=0;i<36;++i){
if(c==in[i]){
out[i]++;
break;
}
}
}
} printf("文件中:\n");
for(int i=0;i<36;++i){
printf("%c字母的个数是:%d\n",in[i],out[i]);
}
return 0;
}
运行结果:
![](https://img-blog.csdn.net/20150610092240962?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenBfX193YWo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#ff6666;">#include <iostream>
#include <cstdlib>
#include _____________ // (1)
using namespace std;
int main()
{
fstream file;
file.open("abc.txt", _________); // (2)
if(!file) {
cout<<"abc.txt can’t open."<<endl;
exit(1);
}
char ch;
int i=0;
while( _____________) // (3)
{
file.get(ch);
_____________; // (4)
}
cout<<"Character: "<<i<<endl;
file._____________;// (5)
return 0;
}</span>
(2)下面程序的功能是将文本文件abc.txt中的所有行加上行号后写到newabc.txt文件中,请填空将程序补充完整。
<span style="font-family:KaiTi_GB2312;font-size:18px;color:#ff6666;">#include <iostream>
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
fstream outfile,infile;
infile.open("abc.txt",_________); // (1)
if(!infile) {
cout<<"Can’t open the file."<<endl;
abort();
}
outfile.open("newabc.txt",______);//(2)
if(!outfile) {
cout<<"Can’t open the file."<<endl;
abort();
}
char buf[80];
int i=1;
while(____________) // (3)
{
infile.____________; // (4)
outfile<<________<<": "<<buf<<endl; //(5)
}
infile.close();
outfile.close();
return 0;
}</span>
(3)用键盘输入文件名,统计输出文件中每个字母、数字字符出现的次数;
代码:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cctype>
using namespace std;
int main(){
fstream infile;
char file[20];
cin>>file;
infile.open(file,ios::in);
if(!infile){
printf("Can't open the file!\n");
abort();
}
char c;
int out[36];
char my[10000];
memset(out,0,sizeof(out));
string in="abcdefghijklmnopqrstuvwxyz0123456789";
while(!infile.eof()){
infile.getline(my,10000);
for(int k=0;my[k]!='\0';k++){
c=towlower(my[k]);
for(int i=0;i<36;++i){
if(c==in[i]){
out[i]++;
break;
}
}
}
} printf("文件中:\n");
for(int i=0;i<36;++i){
printf("%c字母的个数是:%d\n",in[i],out[i]);
}
return 0;
}
运行结果: