码迷,mamicode.com
首页 > 编程语言 > 详细

C++实验六;

时间:2019-06-12 21:29:02      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:new   fstream   etc   merge   inf   一个人   etl   判断   ctime   

Part2 基础练习

Code

技术图片
#include<fstream>
#include<string>
#include<iostream>
using namespace std;
int main()
{
    char a[20]="merge sucessfully";
    ofstream file("3.txt",ios_base::app);
    file<<endl;
    file.write(reinterpret_cast<char *>(&a),sizeof(a));
    file.close();
    return 0;    
}
Part2

运行截图

技术图片

Part3 应用编程实践

Code

技术图片
#include <iostream>
#include <string>
#include "utils.h"
#include<fstream> 
#include<cstdlib>
#include<cstring>
#include<ctime>
using namespace std;

int main() {
    string filename;
    filename = getCurrentDate();
    cout << filename << endl;
    char file[50];
    string a[100];
    int n,i,j,s=0;
    cout<<"输入名单列表文件名:";
    gets(file);
    cout<<"输入抽取人数:";
    cin>>n; 
    ifstream fin;
    fin.open(file);
    if(!fin.is_open()) 
    {
    cerr << "fail to open file " << file << endl;
    system("pause");
    exit(0);
    }
    string newfile;
    ofstream fout;
    newfile=filename;
    fout.open(newfile);
    if(!fout.is_open())
    {
    cerr << "fail to open file " << newfile << endl;
    system("pause");
    exit(0);    
    }
   ifstream infile(file);
   //读取文本行数// 
    while(!infile.eof()){
        getline(infile,a[s],\n);
         s++;
     }
    int ran;
    for(i=0;i<n;i++)
    {
    srand(time(NULL));
    ran+=rand()%s;
    cout<<a[ran%s]<<endl;
    }
    fin.close();
    fout.close();
    return 0;
}
随机抽人

技术图片

统计字符数

Code

技术图片
#include<iostream>
#include<fstream> 
using namespace std;
int main()
{
    char filename[20];
    cout<<"输入要统计的英文文本文件名:";
    gets(filename);
    int cnum=0,wnum=0,lnum=0;
    ifstream fin;
    fin.open(filename);
    if(!fin.is_open()) {
        cerr << "fail to open file " << filename << endl;
        system("pause");
        exit(0);
    }
    char ch;
    while(fin.get(ch))
    {
        if(ch== )
        { 
        wnum++;
        cnum++;
    }
        else if(ch!= &&ch!=\n)
        cnum++;
        else
        {
        lnum++;    
    }
    }
    cout<<"字符数"<<cnum<<endl;
    cout<<"单词数"<<wnum+lnum+1<<endl;
    cout<<"行数"<<lnum+1<<endl; 
    fin.close() ;
}
统计字符数

运行截图

技术图片

实验总结:1.感觉书上以不同形式打开文件的讲解很有用,编程第一题就用了其中的追加形式。

                  2.还是会犯一些低级错误,比如用时间作为随机种子时没有包含头文件<ctime>,浪费了一些时间。

                  3.统计字符数时我是将每个字符进行判断计数,应该有其他的方法,后续会在其他同学的博客中浏览学习。

                  4.随机抽人大致算法是将每一个人的一行信息进行标号,每一行为一个string,同样会后续学习其他同学的方法。

 

C++实验六;

标签:new   fstream   etc   merge   inf   一个人   etl   判断   ctime   

原文地址:https://www.cnblogs.com/qiuqiuwr/p/11012625.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!