C++(实验六)

2020-12-13 02:37

阅读:385

标签:xcode   www   opened   结合   ima   namespace   单列   div   源码   

Part  1

1. 合并两个文件到新文件中。文件名均从键盘输入。 运行程序,结合运行结果及源码中注释,理解和体会文件I/O的方法。 

技术图片技术图片
 1 // 合并两个文件内容到一个新文件中。
 2 // 文件名均从键盘输入
 3 #include  4 #include  5 #include string>
 6 #include  7 using namespace std;
 8 int main() {
 9 string filename1, filename2, newfilename;
10 cout "输入要合并的两个文件名: " ;
11 cin >> filename1 >> filename2;
12 cout "输入合并后新文件名: " ;
13 cin >> newfilename;
14 ofstream fout; // 输出文件流对象
15 ifstream fin; // 输入文件流对象
16 fin.open(filename1); // 将输入文件流对象fin与文件filename1建立关联
17 if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出
18 cerr "fail to open file "  endl;
19 system("pause");
20 exit(0);
21 }
22 fout.open(newfilename); // 将输出文件流对象fout与文件newfilename建立关联
23 if(!fin.is_open()) { // 如果创建/打开文件失败,输出错误提示信息并退出
24 
25 cerr "fail to open file "  endl;
26 system("pause");
27 exit(0);
28 }
29 char ch;
30 // 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中
31 while(fin.get(ch))
32 fout  ch;
33 fin.close(); // 关闭文件输入流对象fin与文件filename1的关联
34 fout // 向文件输出流对象fout中插入换行
35 fin.open(filename2); // 将输入文件流对象fin与文件filename2建立关联
36 if(!fin.is_open()) { // 如果打开文件失败,则输出错误提示信息并退出
37 cerr "fail to open file "  endl;
38 system("pause");
39 exit(0);
40 }
41 // 从文件输入流对象fin中获取字符,并将其插入到文件输出流对象fout中
42 while(fin.get(ch))
43 fout  ch;
44 fin.close(); // 关闭文件输入流对象fin与文件filename2的关联
45 fout.close(); // 关闭文件输出流对象fout与文件newfilename的关联
46 system("pause");
47 return 0;
48 }
main.cpp

运行截图

技术图片

技术图片

技术图片

 

Part  2

 使用文件I/O流,以文本方式打开Part1中合并后的文件,在文件最后一行添加字符"merge successfully. " 

技术图片技术图片
 1 #include  2 #include  3 #include string>
 4 #include  5 using namespace std;
 6 int main() {
 7 ofstream fout;
 8 fout.open("3.txt",ios_base::app); 
 9 if(!fout.is_open()) { 
10 cerr "fail to open file 3.txt " endl;
11 system("pause");
12 exit(0);
13 }
14 fout "merge successfully." endl; 
15 fout.close();
16 system("pause");
17 return 0;
18 }
main.cpp

运行截图

技术图片

 

Part  3(待完善)

  已知名单列表文件list.txt。编写一个应用程序,实现从名单中随机抽点n位同学(n由键盘输入),在屏幕上显 示结果,同时也将结果写入文本文件,文件名自动读取当天系统日期,如20190611.txt。 

技术图片技术图片
 1 #include  2 #include  3 #include string>
 4 #include  5 #include  6 #include "utils.h"
 7 using namespace std;
 8 
 9 int main() {
10     int i,j;
11     char s[83][100];
12     string filename,newfilename;
13     cout "请输入文件名: " ;
14     cin >> filename;
15     cout "请输入抽点的人数: " ;
16     cin >> n;
17     newfilename = getCurrentDate();
18     ofstream fout;
19     ifstream fin;
20     srand((unsigned)time(NULL));
21     fout.open(newfilename);
22     if(!fout.is_open()) {
23         cerr "fail to open "  endl;
24         system("pause");
25         exit(0);
26     }
27     fin.open(filename);
28     if(!fin.is_open()) {
29         cerr "fail to open file "  endl;
30         system("pause");
31         exit(0);
32     }  for (i = 0; i 83; i++) {
33         for (j = 0; j 100; j++) {
34             ch = fin.get();
35             s[i][j] = ch;
36             if (ch == \n)
37             {
38                 break;
39             }
40 
41         }
42     }
43     fin.close();
44     fout.open(getCurrentDate());
45     for (i = 0; i ) {
46         a = rand() % 83;
47         cout  s[a];
48         fout  s[a];
49     }
50 
51     fout.close();
52     system("pause");
53     return 0;
54 }
main.cpp

*这道题utils.h一直显示技术图片

 

Part  4

编程统计英文文本文件中字符数(包括空格)、单词数、行数。文件名由键盘输入。

技术图片技术图片
 1 #include  2 #include  3 #include  4 #include  5 using namespace std;
 6 
 7 int main(){
 8     string filename;
 9     int n=0,l=1,w=1;
10     char ch;
11     cout"输入要统计的英文文本文件名:";
12     cin>>filename;
13     ifstream fin;
14     fin.open(filename); 
15     if(!fin.is_open()) { 
16         cerr "fail to open file "  endl;
17         exit(0);    
18     } 
19     while(fin.get(ch)) 
20       {
21        if(ch!=\n)
22          {
23             n++;
24             if(ch== )
25               w++;
26          }
27        else
28             {
29                 w++;
30                 l++;
31             }
32     }  
33     cout"字符数: "endl;
34     cout"单词数:"endl;
35     cout"行数:"endl;
36    return 0;
37 }
main.cpp

运行截图

技术图片

 

 

实验总结:

对流类库与I/O有了新的认识,但在实验中意识到对这部分的知识还是薄弱的,需要其他同学的帮助

对于Xcode与Windows某些兼容性还需完善,

 

评论链接

https://www.cnblogs.com/agsjg/p/10970474.html

https://www.cnblogs.com/mxueyyqx/p/10963449.html

https://www.cnblogs.com/aiwenzhuo/p/10970940.html

C++(实验六)

标签:xcode   www   opened   结合   ima   namespace   单列   div   源码   

原文地址:https://www.cnblogs.com/dadadacy/p/11044618.html


评论


亲,登录后才可以留言!