首页 / C++ / 【C++ 流类库与输入输出 】实验七
【C++ 流类库与输入输出 】实验七
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【C++ 流类库与输入输出 】实验七,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4321字,纯文字阅读大概需要7分钟。
内容图文
-
1. 基础练习 (1)教材习题 11-7 (2)教材习题 11-3 (3)教材习题 11-4
2. 应用练习 (1)已知有班级名单文件 list.txt(见实验 7 附件包)。编写一个应用程序实现随机抽点 5 位同学,在屏幕上显示结果,同时,也将结果写入文件 roll.txt。 ① 编写程序实现题目基本功能要求。(必做) ② ******选做******) 对①中实现的基本功能进行完善、扩充,使得这个点名应用程序更灵活、更方便。比如: a) 从键盘输入班级文件名,支持对不同班级的点名操作; b) 从键盘输入用于保存点名结果的文件名。更灵活地,自动获取当前系统日期作为文 件名,比如 20180612.txt。(如果希望更细粒度,文件名可以到小时和分钟这一层级); c) 随机抽点人数不固定,通过键盘按键控制何时抽点结束; d) 通过菜单及程序的函数模块划分,或类的设计与实现,做成一个更完善的应用,等 等。 (2)统计英文文本文件字符数、单词数、行数,文件名由键盘输入。 ① 编写 C++程序实现题目基本功能要求。(必做) ② ******选做****** a) 提供菜单,由用户选择统计内容; b) 思考当文本内容数量级偏大,①处已实现的程序能否胜任,实现快速统计?在算法 和处理逻辑上是否存在进一步改进的部分? - 解答:
- 11-3
1 #include<iostream> 2 #include<fstream> 3usingnamespace std; 4int main(){ 5 ofstream out("test1.txt"); 6if(!out) { 7 cout << "fail to open." << endl; 8return1; 9 } 10out<<"已成功写入文件!"<<endl; 11out.close(); 1213return0; 14 }
11-4:
1 #include <iostream> 2 #include <fstream> 3 #include <string> 4usingnamespace std; 5int main() { 6 7string s; 8 ifstream in("test1.txt"); 9if(!in) { 10 cout << "fail to open." << endl; 11return1; 12 } 13in >> s; 14 cout << s; 15in.close(); 16return0; 17 }
11-7
// p510, ex11-7 #include <iostream> usingnamespace std; int main() { ios_base::fmtflags original_flags=cout.flags();//保存现在的参数设置 cout << 812 << ‘|‘; cout.setf(ios_base::left, ios_base::adjustfield);//输出左对齐 cout.width(10);//设置域宽,但是只对第一个输出起作用 cout << 813 << 815 << ‘\n‘; cout.unsetf(ios_base::adjustfield);//清除左对齐格式 cout.precision(2);// 两位浮点数 cout.setf(ios_base::uppercase|ios_base::scientific);// 科学计数法 cout << 831.0; cout.flags(original_flags); // 恢复原来的格式设置 return0; }
- 这道题我分别采用三种方式读入老师所给的文件,但是读不进来。测试输出的都是空格乱码。我将list.txt文件和代码放在同一目录下,但是,就是读入不了啊。然后我就自己新写了一个test1.txt文件,可以正常读取输出。老师所给的文件有什么特殊输入,特殊字符吗?一定要文件读入这个list.txt文件是不是在考查哪个知识?遗憾的是,我并没有成功读入文件啊!!!下面给出我自己创建的文件运行
1 #include<iostream> 2 #include<string> 3 #include<cstdlib> 4 #include<fstream> 5usingnamespace std; 6struct student{ 7string order; 8string xuehao; 9string name; 10string classname; 11}; 12int main(){ 13 student s[83]; 14 ifstream infile("test1.txt"); 15if(!infile) //测试是否成功打开 16 { 17 cerr<<"open error!"<<endl; 18return0; 19 } 20/*利用行读取来获取文件信息*/21/*int i=0; 22 char c[83]; 2324 while(!infile.eof()){ 25 infile.getline(c,83); 26 cout<<c[i]<<endl; 27 i++; 28 } 29 infile.close(); //利用行读入进行文件读取*/303132/*仿照课件员工工资读取方式读取*/33/* while(!infile.eof()) 34 { 35 infile.read(reinterpret_cast<char*>(&s), sizeof(s)); //只有二进制才能这样读取吗? 36 if(infile) { 37 cout << s.order << " " << s.xuehao << endl; 38 } 39 } 40 infile.close(); */4142int i=0; 43while(infile>>s[i].order>>s[i].xuehao>>s[i].name>>s[i].classname) 44 { 45 i++; 46 } 47 infile.close(); 48int a=1; 49 ofstream out("roll.txt"); 50for(int i=1;i<=5;++i) 51 { 52 a=rand()%i+1; 53 cout<<s[a].order<<""<<s[a].xuehao<<""<<s[a].name<<""<<s[a].classname<<endl; 54out<<s[a].order<<""<<s[a].xuehao<<""<<s[a].name<<""<<s[a].classname<<endl; 55 } 56out.close(); 5758return0; 59 }
最后的蓝色部分也是一行输出,由于我定义的s数组为100,但是文件里面只有5个名字,所以输出了其中没有值的一项。
- 写入的文件截图如下
- :
- 利用实验七里面的list.txt生成截图如下:
SYSTEMTIME sys;
GetLocalTime(&sys);
cout<<sys.wYear<<sys.wMonth<<sys.wDay<<sys.wHour<<sys.wMinute<<sys.wSecond<<endl;可以读取当前时间,头文件#include<windows.h>,我的想法是将时间强制转化为string,进行字符串的连接之后,形成一个string h,用h 命名文件名字。强制类型转化失败了。
- 读取单词
#include<string.h> #include<fstream> #include<iostream> usingnamespace std; int main(){ ofstream out("words"); out<<"you are so much kind!"<<endl; out<<"guss this can be successd"<<endl; out.close(); //手动创建文件/*cout<<"Please Enter filename:\n";//在命令行窗口输入文件 string filename; cin>>filename; ifstream in(filename.c_str()) ;*/ ifstream in("words"); long linenum=0,chnum=0,wordnum=0; char str[1000]; while(in.getline(str,1000)){ for(int i=0;i<strlen(str);i++) { chnum++; if(str[i]==‘‘||str[i]==‘,‘||str[i]==‘!‘) wordnum++; } linenum++; } cout<<"行数:"<<linenum<<endl<<"字符数:"<<chnum<<endl<<"单词数:"<<wordnum<<endl; in.close(); return0; }
- 11-3
原文:https://www.cnblogs.com/yitou13/p/9204554.html
内容总结
以上是互联网集市为您收集整理的【C++ 流类库与输入输出 】实验七全部内容,希望文章能够帮你解决【C++ 流类库与输入输出 】实验七所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。