C++ primer plus 第六章 分支语句和逻辑运算符

C++ primer plus 第六章 分支语句和逻辑运算符

简单文件输入/输出

文本i/o和文本文件

不同数据下cin读取状况

设输入是
38.5 19.2

char
char ch;
cin>>ch;

cin将读取第一个字符
第一个字符’3’其字符编码被赋值给ch,输入和目标变量都是字符,不需要进行转换.
ch储存的不是数值3,而是字符’3’.

int
int n;
cin>>n;

cin将不断读取直到遇到非整数字符(小数点也不是)
cin读取"38"并转换成数值38给n

double
double n;
cin>>n;

cin不断读取直到遇到第一个不是浮点数的字符
cin读取"38.5"并将其转换成数值

char[]

cin不断读取直到遇到空白字符
cin读取"38.5"赋值给char [];并且把char[5]标记成’/0’

cin.getline(char *,int num)读取char []

cin不断读取直到遇到num-1个字符或者换行符(会被丢弃),在最后一个(即是char [num-1]上)加上’/0’标识符,输入队列的下一个字符是下一行中的第一个字符,这里不需要进行任何转换.

写入到文本文件中

C++利用cout来完成文件输出

文件输出的具体要求
  1. 必须包含头文件
  2. 头文件定义了一个用于处理输出的osteam类
  3. 需要声明一个或者多个ofsteam变量(对象)
  4. 必须指明命名空间
  5. 需要将ofsteam对象和文件关联起来,方法之一是用open()
  6. 使用完文件之后应该用close()将其关闭
  7. 可以结合ofsteam对象和运算符<<来输出各种类型的数据.
例子
ofsteam outfile;
ofsteam fout;
outfile.open("fish.text");
char filename[50];
cin>>filename;
fout.open(filename);//fout used to read specified file
//读一个filename[50]写到fish.text里
//fout.open()接受一个c-string作为参数(即char *,字面字符串或者储存在数组中的字符串)
应用

重要的是声明一个ofsteam对象并将其同文件关联起来之后就可以像使用cout一样使用它,用于cout的操作和方法(例如<<.endl和seft())都可以用于ofsteam对象.

在声明一个ofsteam对象之后可以用方法open()将对象和特定文件关联起来

ofsteam outFile;
outFile.open("carinfo.txt");
//....
//注意用完之后要用方法close()关闭文件
outFile.close();//这个close(不需要参数)
open()

open(char *)在操作时如果char *名称的文件不存在,那么将新建一个char *文件,如果存在,将默认将其长度截断为0(如果这个文件允许访问的话,否则也可能出现打开失败)

读取文本文件

具体要求
  1. 大部分和写入文件要求相似
  2. 头文件fsteam
  3. fsteam中定义了用于文件输出的ifsteam类
  4. 需要声明一个或者多个ifsteam类的对象并且用open()把他们和文件关联起来.
  5. 使用后应该用close()将其关闭
  6. 可以使用cin的各种方法(>>运算符,get(),getline()等)
  7. 可以配合eof(),fail()等方法来判断输入是否成功
  8. ifsteam对象本身被作为判断条件时,如果最后一个读取操作成功返回true否则返回flase
常用测试语句
ifsteam inFile;
inFile.open("bowling.txt");
if(!inFile.is_open())
{
	exit(EXIT_FAILURE);
}
//或者直接把inFile.open()放到判断里 
//if you need to use the report of exit you should include<cstdlib>
inFile.good()

good()函数存在在ifsteam类下,在文件读取良好(即fail()不是true)并且没有到达EOF(eof()不是true)的时候good()返回true,它是最简单的判断文件打开和关联有没有问题的方法之一.它指出最后一次读取是否成功
事实上inFile>>num;返回的是inFile,在需要bool值的时候inFile的返回值实际上就是inFile.good()的返回值.

逻辑运算符

||运算符 或 OR

有1则1;
A||B;
||运算符是一个顺序点

&&运算符 且 AND

A&&B;
&&也是顺序点
A是0的时候不对B做计算(不产生副作用)
常用于找取值范围

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值