标签: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; }
运行截图
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,同样会后续学习其他同学的方法。
标签:new fstream etc merge inf 一个人 etl 判断 ctime
原文地址:https://www.cnblogs.com/qiuqiuwr/p/11012625.html