第14周 【项目1 - 小玩文件】(3)

【项目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;
}

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值