C++学习----cin的两种改进方法&&文件读写&&输出格式

1.关于cin的缺陷

我们使用这个cin这个输入字符串的时候,当我们的输入字符串里面含有空格的时候,这个空格后面的内容就无法被读取,到这个空格处就会被终止,我们有两种方式解决这个问题;

(1)第一种方式

第一种就是使用这个get进行输入的操作,这样就可以得到这个空格后面的字符了,这个get里面有3个参数,实际上这3个参数不是一定要写的,起码这个第三个不一定要写;

我们这里的第一个参数就是我们自己进行定义的字符串s数组,我们这个20代表的是读取20个字符的内容,实际上只会读取19个,下面会有调试的展示;

如果我们的输入部分超过20,空格也算字符的,这个就会只读取前面的19个,然后第二十个位置的字符使用斜杠0代替,如果我们输入的字符不到20个,比如我们一共输入的是15个字符,这个时候就会全部被读取,第16个位置使用斜杠0表示结束;

第三个参数就是截止的标志,我们可给可不给,不给的话默认就是\n,也就是说如果我们只写2个参数,当我们按下回车键的时候,这个时候的屏幕上就会打印我们输入的内容;

如果是加上第三个参数,例如这里的井号,例如whatuh dwkdw#这个里面加上井号一共是13字符,他就会读取井号前面的字符,再补上斜杠0,如果是wertyuiokjhgfdsafghjkjhgfdfghj#肯定是超过了20字符的,就会读取19个字符,再添加上一个斜杠0,就结束了,这个情况下面相当于这个#就没有发挥作用;如果我们的#再中间,例如rtryuio#sdfgh就会读取到井号就结束这个程序了;

 

上面展示的这个就是编译器会自己加上斜杠0,实际上只会读取19个字符的过程; 

(2)第二种方式

这个函数的使用实际上和这个get函数没有什么区别,参数也是一样的含义,我们上面的展示实例就是读取19个字符加上斜杠0结束,如果有第三个字符的话,到第三个字符就会终止; 

2.文件读写

(1)根据文件数据的组织形式,文件被分为ASCII文件和二进制文件

(2)ASCII文件的读写操作

我们有两种实现的方式:

1.使用这个相对路径

使用相对路径前提是要在这个test.cpp同级目录下面新建一个文件,我们这里新建的就是f1.dat文件,一定要在相同的目录下面才可以使用这种相对路径的方法;

ofstream实际上就是一个类,是一个向文件写入数据的类,我们使用这个向文件写入数据的类创建一个outfile的对象,这个里面有两个参数,一个就是我们的文件的名字,第二个参数表示的是打开方式,这里的ios::out方式,表示的是以输出的方式打开文件,因为我们上一篇文章已经通过这个硬件层面介绍了写文件就是一个输出的过程,所以我们选择ios::out这个方式打开文件,这个方式也是文件的默认的打开方式,敲入数据之后 ,我们要使用close关闭文件,我们的文件里面就可以看到了我们敲入的数据;

这里的close这个步骤不可或缺,因为我们的本来的数据相当于是在这个内存上面的,我们写入数据之后就到了这个磁盘上面,这个过程就相当于是磁盘和内存建立了联系

2.使用这个绝对路径 

绝对路径的话就是具体到磁盘文件下面的路径,其他的都没有变化,唯一需要注意的就是这个C语言里面的转义字符的原因,所以这个绝对路径里面的斜线要使用的是双斜线,否则就会被认为是转义字符; 

3.对于这个输出格式的控制

这个里面的内容较多而且杂乱,这里仅仅是部分展示,且具有较为详细的注释,读者可以下去自行尝试 。

  • 20
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值