C++ Primer Plus学习笔记(三)(循环)

1. 基于范围的for循环

1.1 基本用法

int num[10]={1,2,3,4,5,6,7,8,9,10};
for(int x:num)
    cout<<x<<endl;

1.2 修改范围值

应当传递地址,类似指针,从而可以做到修改值的目的。

for(int &x:num)
    x = x + 1;//这样数组num内的值都会加一

1.3 基于初始化列表的范围循环

for(int x : {3,2,6,8})
    cout << x << endl;

2. 检测结束/文件尾条件

文件尾可以表示为检测文件尾(EOF),用键盘可以模拟文件尾,如在windows命令行模式下,可以用ctrl z +enter 进行模拟。

2.1 cin.get() cin.get(char) cin

cin>> 读取char值时,与读取其他类型一样(int float),会自动忽略空格和换行符,并且在按下回车后键盘输入内容才会发送给程序,因此采用cin直接输入方式,实际输入的字符会大于实际到达程序的值。
cin.get()不同于直接采用cin>>,它可以读取换行符、空格等,函数返回一个int值(字符编码作为int值返回)

int ch = cin.get();
cout << ch;//打印int类型(ch的编码)
char ch1 = cin.get();
cout << ch1;//打印char类型

cin.get(char) 返回istream对象

char ch;
cin.get(ch);//函数重载

2.2 EOF文件尾

当文件尾到达时,若采用cin.get()方式,则此时结束标志为返回值为EOF;若采用cin.getchar()方式,此时结束标志为返回值为false(0)
注:cin.get()返回值为EOF在头文件预定义,EOF被定义为-1;虽然cin.get(char)返回值为istream对象,但此时被类型转换为bool类型

char ch = cin.get();
while(ch!=EOF);//检测文件尾
char c1;
while(cin.get(ch1));//检测文件尾,到达文件尾时cin.get()被转化为false

char ch1;
cin.get(ch1);
while(ch1);//错误的检测方式,ch1不是false,而是cin.get()为false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值