《C++ Primer Plus》学习笔记——第五章 循环和关系表达式(三)

循环与文本输入

循环完成的一项最常见最重要的任务:逐字符地读取来自文件或键盘的文本。

cin对象支持三种不同模式的单字符输入,其用户接口各不相同。

使用原始的cin进行输入:

通过循环来读取键盘的文本输入,则必须有办法停止读取。

一种方法是选择某个特殊的字符(哨兵字符)来作为停止标记。

cin有自身的特点:

  1. 忽略空格和换行符
  2. 发送给cin的输入被缓冲,需要按下回车键。

使用cin.get(char)补救,它读取输入的下一个字符(即使他是空格)。但输入仍被缓冲。

但在C语言中,这个函数存在错误,应使用&,而不是直接使用。

cin对象的三种不同模式的单字符输入:

cin.get()     cin.get(ch)       cin.get(name,ArSize);name为数组名,ArSize为读取的字符数。

文件尾条件(检测文件尾EOF)

检测到EOF后,cin将两位(eofbit和failbit)都设置为1,可以通过eof()和fail()来查看是否被设置,如果设置则返回true,否则false。他们都是事后报告,需要放在读取之后,注意fail()可用于更多实现中(常用)。

当EOF后会被标记,再次调用cin将不再读取,需要用cin.clear()来清除EOF标记。

也C语言中的getchar()和putchar()。

嵌套循环和二维数组

二维数组更像一个表格——既有数据行又有数据列。

像下面的声明:

            int maxtemps [4][5];

这意味着maxtemps是一个包含4个元素的数组,每个元素由5个整数组成。

可以使用嵌套的for循环来显示数组元素。

for (int row=0;row<4;row++)
{
    for (int col=0;col<5;col++)
        {
            cout<<maxtemps[row][col];
        }
    cout<<enl;
}

初始化二维数组:

例:

int maxtemps[4][5]=
{
    {96,100,87,101,105},
    {96,98,91,109,105},
    ……,
    ……
};

二维数组的规则可以参考一维数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值