C++关于字符或字符串读入

scanf函数使用规则:读取基本类型变量时,在变量名前加一个&,把字符串读入字符数组中时,不 需要使用&。

数组初始化规则:只有在定义数组时才能使用初始化,此后就不能再使用了,也不能将一个数组赋给另一个数组;

另外初始化时

例如: int totals[10]={0};//这样是可以将totals中所有的值都赋为0的;这样只是给第一个位置赋
                           了一个值,而其后面的位置由于并为赋值,因此为默认值0;

      int totals[10]={1};//这样并不是将数组中的所有元素初始化为1,只有第一个位置上的值为1,
                           其他位置上的元素依然是0;

初始化时,如果方括号内为空,则C++编译器将计算元素个数(通常让编译器计算元素个数并不是很好);

cin函数是以空白来确定字符串的结束位置,这意味着字符数组输入时只读取一个单词,并且在读取之后,自动在结尾添加空字符。cin函数也是读取之后会将换行符留在缓冲区中,这时调用getline()就会造成遇到的第一个便是换行符,解决这个问题需要在调用getline()之前,先调用cin.get()

面向行的输入:getline()

这个函数读取整行,以回车键输入的换行符来确定输入的结尾,并在读取后将其丢弃掉,以空字符取而代之。

例:cin.getline(参数1存储输入行的数组名称,参数2是要读取的字符数。)

cin.getline(s,20)——这个函数可以读取不多于19个字符,当然s数组需要足够大。

面向行的输入:get()

同样读取整行,但是其并不会读取并丢弃换行符,而是将其留在输入队列中。参数和上一个函数相同

连续调用两次get()

例:

cin.get(name,ArSize);

cin.get(dessert,ArSize);

这样会有一个问题:读取一行之后换行符留在缓冲区,再次调用get函数时则直接遇到换行符,即第二个get()函数什么都没有读到;避免这个问题需要在两个函数中间加上一个cin.get()函数可以直接跳过一个字符,即使是换行符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值