C++的cin输入方法(续)
cin>>的输入方式
cin>>两种相等的方式
空白有哪些
cin>>a>>b;//这样的输入会跳过缓存区中a前的空格,以及a,b间的空格
例子
可以用来读字符串(以空白为间隔),字符,数字
- 值得注意的是,即使第二个cin是char类型,也不会读25后面的空格;
- 也会跳过前导空格,直到读到非空格字符为止
- 会将最后一个2的输入,自动转换为float类型,赋值给bill变量
- 25后的空格是不会被消除的,依然保留在缓存区中
cin.get()
这是用于读字符(空白字符也可以读)==C语言中的get()
存在两种方式
char c=cin.get();
cin.get(c);//这种方式是没有返回值的
例子
cin.ignore()
- 从输入流 cin 中提取字符,提取的字符被忽略,不被使用。而每抛弃一个字符,它都要进行计数和比较字符:如果计数值达到第一个参数或者被抛弃的字符是第二个参数,则cin.ignore() 函数执行终止;否则,它继续等待。
即:
- 有两个参数。第一个参数跳过代表跳过多少字符;第二个参数代表跳至哪个字符
- 以两个参数所指定的最小跳过为准
常用于:
getline函数
-
该函数不是cin对象下面的方法,而是< iosteam >中所带有的库函数(C++不是完全封装的,允许函数的存在)
-
getline(cin,message)从标准输入流中读一行字符串(其中可以包含空白,因读取不是由空白符停止,而由换行符停止),换行符会被getline读掉,但是不放入读入的变量中,而只是单纯的将它从缓存区中删去
cout<<setfill(char c)
- 用来设置setw()的填充字符
- 不是一次性的,是一直有效的
cin.clear()
清除所有<<fixed<<setfill('A')<<
之类的设置
文件读写
-
open可以是绝对路径,也可以是相对路径
-
在写路径的时候,必须要两个反斜杠
-
以上是
①包含头文件
②使用输出/输入类型定义一个输出/输入对象
③需要使用文件对象打开相应文件
④最后记得通过文件对象关闭文件 -
输入对象的用法同cin对象的用法‘
-
输出对象的用法同cout对象的用法
读入失败
- 文件输入对象open时,该路径对应的文件不存在或打不开,文件输入对象会被挂起,和这个流(文件对象)的所有操作全部忽略,但是程序不报错!!
- 如果该输入流读入对应错误,一样挂起,如下所示:
int a;
myinfile>>a;//但是对应的文件处却是一个字符串,此时对应错误
输出失败
- 输出时文件不存在,则会创建一个新的文件
- 当磁盘满或者输出到不可写的光盘时,则会也会被挂起
使用一个输入的文件名打开文件
动态文件名指定
- 需要注意的是,open的参数一定是一个c-风格的字符串!
补充
基于文件尾的循环退出条件
注: 当文件流挂起时,文件流对象的值——是false
myfile>>sex>>age;//若读到文件尾,流也会挂起
while(myinFile){
//一些基于读进来数据的操作
myfile>>sex>>age;
}