标签:class getline 字符 当前系统时间 end opened splay 获取 头文件
1.验证性实验
#include <iostream> #include <fstream> #include <string> #include <cstdlib> using namespace std; int main() { string filename1, filename2, newfilename; cout << "输入要合并的两个文件名: " ; cin >> filename1 >> filename2; cout << "输入合并后新文件名: " ; cin >> newfilename; ofstream fout; // 输出文件流对象 ifstream fin; // 输入文件流对象 fin.open(filename1); // 将输入文件流对象fin与文件filename1建立关联 if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出 cerr << "fail to open file " << filename1 << endl; system("pause"); exit(0); } fout.open(newfilename); // 将输出文件流对象fout与文件newfilename建立关联 if(!fin.is_open()) { // 如果创建/打开文件失败,输出错误提示信息并退出 cerr << "fail to open file " << newfilename << endl; system("pause"); exit(0); } char ch; // 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中 while(fin.get(ch)) fout << ch; fin.close(); // 关闭文件输入流对象fin与文件filename1的关联 fout << endl; // 向文件输出流对象fout中插入换行 fin.open(filename2); // 将输入文件流对象fin与文件filename2建立关联 if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出 cerr << "fail to open file " << filename2 << endl; system("pause"); exit(0); } // 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中 while(fin.get(ch)) fout << ch; fin.close(); // 关闭文件输入流对象fin与文件filename2的关联 fout.close(); // 关闭文件输出流对象fout与文件newfilename的关联 system("pause"); return 0; }
2.随机抽出同学
//这个头文件里包含了可用工具函数的声明 #include <string> using std::string; // 函数声明 // 返回当前系统时间,格式诸如20190611 string getCurrentDate();
#include "utils.h" #include <ctime> using std::string; const int SIZE = 20; // 函数功能描述:返回当前系统日期 // 参数描述:无参数 // 返回值描述:以string类型返回系统当前日期,格式诸如20190611 string getCurrentDate() { time_t now = time(0); // 获取当前系统日历时间 struct tm *local_time = localtime(&now); // 把系统日历时间转换为当地时间 char date[SIZE]; strftime(date, SIZE, "%Y%m%d", local_time); return (string(date)); }
#include <iostream> #include <string> #include <iostream> #include <string> #include <cstdlib> #include<fstream> #include<time.h> #include "utils.h" using namespace std; int main() { int d,num; ifstream fin; ofstream out; string filename; cin>>filename>>d; fin.open(filename,ios::in); if(!fin) { cout<<"open file fail!"; }else cout<<"open file success!"<<endl; string str[1000]; int mid = 0; int count =0; int max=0; while(!fin.eof()) { getline(fin,str[count],‘\n‘); count++; } fin.close(); filename=getCurrentDate() + ".txt"; out.open(filename); while(d--) { int a[100]={0}; while(a[num]!=1) { num = rand() % count; cout<<str[num]<<endl; out<<str[num]<<endl; a[num]=1; } } return 0; }
3.统计单词行数字符数
#include <iostream> #include <fstream> #include <string> using namespace std; int main() { string filename; char ch; int ca=0,word =1,line=1; cout<<"输入要统计的文本文件名:" ; cin>>filename; ifstream fin; ofstream out; fin.open(filename); if(!fin.is_open()) { cerr << "fail to open file "<<endl; system("pause"); exit(0); } while( fin.get(ch)){ if(ch==‘ ‘||ch==‘\n‘) { word++; } if(ch==‘\n‘) { line++; } if(ch==‘ ‘||(ch!=‘\n‘&&ch!=‘ ‘)) { ca++; } } cout<<"字符数:"<<ca<<endl; cout<<"单词数:"<<word<<endl; cout<<"行数:"<<line<<endl; fin.close(); }
实验让我熟悉了get() getline()的各种形式,格式用法,刚开始看觉得一头雾水,比较乱,后面慢慢理解了。
标签:class getline 字符 当前系统时间 end opened splay 获取 头文件
原文地址:https://www.cnblogs.com/q1831726125/p/11044621.html