c++实训遇到的问题(1)

c++实训 人力资源管理系统

这个是个很小的系统,甚至称不上系统,只是具备一些基本的功能,用于练手的。

https://pan.baidu.com/disk/home?#list/path=%2F&vmode=list    这是云盘的地址,里面有这次实训项目的文档(很简单)。

内容

  基于这个小项目,这篇博文会列出我在写这个系统的时候遇到的问题,以及解决的方法

(ps:本人的c++只是学了皮毛,没有很深入,只是一个新手,如果您在浏览过程中发现错误,可以留言指出,我会及时更正,十分感谢

正文:

1:打开txt文件,读写数据

#include<iostream>
#include<stdio.h>
#include<string>
#include<fstream>
using namespace std;

 int main()
 {  

    ifstream dire("pmtxt.txt");
    // 打开文件 pm.txt  ,并将其命名为dire,读取文件内容 ,读操作(输入)的文件类
    dire.fail() == 1;  //判断文件是否打开失败  1:打开失败  ;0:打开成功
    ofstream tofil("pm.txt");//  打开文件 pm.txt  ,并将其命名为tofil   ,写操作(输出)的文件类
    fstream records("pm.txt"); //   这样也可以打开  可读可
    return 0; 

 }

2:读写文件内容

读取文件行内容 :getline ()

#include<iostream>
#include<stdio.h>
#include<string>
#include<fstream>
using namespace std;

 int main()
 {
    string  line;
    ifstream dire("pmtxt.txt");
    // 打开文件 pm.txt  ,并将其命名为dire,读取文件内容 ,读操作(输入)的文件类
    dire.fail() == 1;  //判断文件是否打开失败  1:打开失败  ;0:打开成功
    ofstream tofil("pm.txt");//  打开文件 pm.txt  ,并将其命名为tofil   ,写操作(输出)的文件类
    fstream records("pm.txt"); //   这样也可以打开  可读可     

    getline(dire,line) ;   // 读取dire文件里的一行内容并保存在 line 里面
    cout<<line;//显示这行内容
    tofil<<line;//将line 字符串写入到tofil 文件中
    tofil<<"新写入的一行"<<line;
    return 0;
 }

3:关闭文件

  dire.close();

  tofil.close();

4:格式化输出

  头文件 #include<iomanip>

    固定长度:setw(int w)

    cout<<setw(8)<<"line"<<endl; //固定长度为8位

  左对齐/右对齐
    cout<<std::right<<setw(10)<<"123";  //右对齐,固定长度10位

    cout<<setw(5)<<"123"<<endl;//右对齐
    cout<<std::left<<setw(10)<<"123";//左对齐,固定长度10位

    cout<<setw(6)<<"123"<<endl;//左对齐
     一旦设置左对齐,或者有右对齐之后,如果不改变其左右对其,则会保持之前设置

5:大小写转换

#include<iostream>
#include<stdio.h>
#include<string>
#include <algorithm>
using namespace std;

 int main()
 {
    string str1,str2,str3;
    cin>>str1;
    transform(str1.begin(),str1.end(),back_inserter(str2),::tolower);//全小写转换
    transform(str1.begin(),str1.end(),back_inserter(str3),::toupper);
    //全大写转换 当str2,str3要重用时,要置空
    return 0;
 }

6:字符数组转为字符串

#include<iostream>
#include<stdio.h>
#include<string> 

using namespace std;

 int main()
 {
    char str1[20]="aaaaaa";
    string str2=str1;//整个全转为字符串
    string str3(&str1[0],&str1[5]);//(起始位置,结束位置)转为字符串
    cout<<str2<<endl;
    cout<<str3<<endl;
    return 0;
 }

7:string 类的一些方法
str.substr(起始位置,字符个数(不写表示到最后))

str.find(匹配字符串,起始位置,匹配字符串的前几位)

str.rfind(    匹配字符串        ,string::npos:表示从目标字符串某位开始, 匹配字符串的前几位  )

  返回首字符的位置,或者-1

str.replace( 起始位置,删除个数,插入内容)

  返回替换后内容  会修改原字符串

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;

 int main()
 {
    string str1,str2,str3;
    int n1,n2;
    cin>>str1;
    cin>>str3;
    n1=str1.find(‘c‘);
    str2=str1.replace(n1,1,1,‘o‘); //(起始位置,删除个数,字符‘c’重复次数,‘字符’);
    cout<<str1<<endl;
    cout<<str2<<endl;
    n2=str3.find("ab");
    str2=str3.replace(n2,1,"ooo");//(起始位置,删除个数,插入字符串);
    cout<<str2<<endl;
    cout<<str3<<endl;

    return 0; 

 }

8:如何接收回车并判断

#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;

 int main()
 {
    char str[20];
    int i=0,flag=1,n;
    getchar();//如果之前有回车,它可以吞掉回车
    while(flag)
    {
        str[i]=getchar();//获取输入字符
        //或者:scanf("%c",&str[i]);
        if(str[i] == ‘\n‘)
        {
            cout<<"接收到回车"<<endl;
            flag=0;
            i++;
        }//接收到回车退出
    }
    string str1(&str[0],&str[i-1]);//将字符数组转为字符串,其中不包含回车
    cout<<str1<<endl;
    return 0; 

 }

暂时,写到这里。

时间: 2024-10-29 19:06:20

c++实训遇到的问题(1)的相关文章

老男孩linux实训学生入学资格考试题(技术部分)

################################################################ 本文内容摘录于老男孩linux实战运维培训中心入学考试题(答案部分) 如有转载,请务必保留本文链接及版权信息. 欢迎广到运维兄弟一起交流linux/unix网站运维技术! 网站运维交流群:114580181 45039636 37081784  老男孩 QQ:31333741  mail:[email protected] ======================

&lt;实训|第五天&gt;通过搭建NFS,FTP实现共享文件附Vim脚本游戏

先说个事情:我周末是不更新这个系列教程的,不过其他内容的会更新,我周末就整理这一周的各种内容到我的微信公众号中,提供给大家! 期待已久的linux运维.oracle"培训班"终于开班了,小编从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! 感谢大家的支持

&lt;实训|第四天&gt;Linux下的vim你真的掌握了吗?附上ftp远程命令上传。

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

&lt;实训|第二天&gt;掌握linux6.7中安装vmware、vmware安装linux发行版本以及遇到的问题最后libreoffice的安装

期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教程,包括今天学到了什么知识点,用了什么方法,使用了什么工具,工具在哪里共享着等等,努力做到让每一位感兴趣的.关注我的.没关注我的老司机都能在自己闲暇的时光学到一点额外的知识,指不定那一天你就用上了少许呢! ------------------------------------------------------------

山西高平地域文化导入美术设计实训项目的实践

地域文化,是指某个地域的人们在特定的范围内,在自然环境的基础上,在长期的生产生活中创造的.人类活动的产物.山西高平是神农炎帝的故里,长平之战的发生地,是一个有着很深文化积淀的新兴城市,行政区域是国土面积的万分之一,却浓缩了中国五千年文化的精髓.本文通过对山西高平丰富的历史文化资源的调查研究,探讨如何将地域文化元素导入中职美术设计专业的实训项目教学过程,论证典型地域文化元素在中职美术设计教育中的独特作用,并以此作为教学实训素材,依托带有典型地域文化特征的企业真实案例,结合教育教学实践,探索中职美术

为期3个月的实训结束了,有感而发

今天是10月22日,早上刚刚结束项目答辩,作为组长的我第一个进会议室,我深吸一口气,淡定地走了进去,为我这几个月的成果做个总结汇报,那一刻我的心情是平静的,连接好投影仪,清清嗓子,我开始了自我介绍,然后就开始了我的答辩,老师的问题我都完整地回答了出来,也展示了我自己实现的有亮点的小功能,汇报完毕后,起身做了结束语,看着面试官老师们满意的微笑我的心里有了一丝欣慰与感动 这次做的项目是基于局域网的微博客户端,用到安卓开发,我负责整个项目的进度,这期间,我们小组一共5个人不停奋战,实现所有功能,也修改

实训团队心得(1)

这次实训我们团队做的是J2EE项目,在这次项目中,我们需要搭建的是一个基于SSH2框架的关于学校教室资源分配的系统.在这次项目中,我第一次尝试担当项目开发团队的负责人. 由于团队是第一次进行合作,因此在各个方面都显得不太成熟,如组织.讨论等等方面.下面是自己在担当负责人的一些心得,以备后用: 1)关于团队学习 在这次项目中,团队在遇到J2EE的相关知识时,有点慌乱,因为大家都不知道应该从哪方面对J2EE这种了解过得技术进行学习.结果在项目准备阶段中,大家都是在研究J2EE的结果以及相关配置.结果

实训之countdown深度优化

今天开始我们为期三周的实训,讲道理很紧张.我们两个多月的时间,小组成员磨合的非常好,可以说是有点默契的程度了,凝聚力明显提高.今天的分组之后立马投入这次实训中. 首先要确定我们这次实训目标,我们选择了继续强化我们的项目.在前段时间配合的不是很理想到通力合作做出粗略的基本功能的实现,我们每个人都付出了很多.这次我们希望继续深入下去这个项目,让它不再是一个简单的功能性软件,我们打算加入一些全新的功能点进去,让这个项目成为我们之前规划中小巧简便实用性高的产品. 首先我们希望加入登录注册,在使用过程中可

&lt;实训|第三天&gt;Linux登录界面的修改以及Richard Stallman、自由软件运动

在写博客之前我想说两点: 承认一个错误,昨天写的实训第二天,我把redhat6.7写成了Linux6.7,感谢热心人士的指出! 昨天写的文章名字太长了,今天改善,内容感觉表述不全,希望各位谅解! 官方跟我说的是安装配置类的文章不能放进首页中,今天虽然有一点,但是主体部分还是对GUN.Linux和TCP/IP以及IP的认识. 期待已久的linux运维.oracle"培训班"终于开班了,我从已经开始长期四个半月的linux运维.oracle培训,每天白天我会好好学习,晚上回来我会努力更新教

c++课程实训 银行储蓄系统

基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序.能用文本文件存取数据(如演示样例中给出的技术): 拓展方向: 序号 加分项目 细       则 1 改变Bank类中用户信息的存储方式 用对象的指针数组存储(User *user[upNum]) 或者用动态数组(User *users.空间用new分配) 2 功能扩充 按银行实际业务的要求,添加User类中的数据成员,可以记录身份证号.家庭住址等信息,并在相关业务中使用这些数据. 记录用户的每一笔业