C++中的字符串输入

今天在编程的时候遇到的问题,查阅资料终得解,特来分享给大家!以备不时之需。

1、常用的cin是如何确定字符串的输入完成了呢?

    答:cin使用空格、制表符和换行符来确定字符串的结束位置,这意味着cin每次只能获取字符数组输入时的一个单词,读取单词后,cin将字符串存入字符串数组中,并自动在结尾添加空字符。

2、实现每次读取一行字符串的操作

    答:这必须使用cin的高级特性,也就是istream中的类提供的一些面向行的成员函数:getline()和get()。这两个函数都实现读取一行,直到换行符,不同的是getline()丢弃换行符,get()保存换行符。使用方法如下:

    cin.getline(str, 20);获取19个字符到str中去。get()用法相似。

3、读取空行时和其他问题

    get()读取空行后将设置失效位(failbit),接下来的输入将被阻断,但可以用cin.clear();恢复。

    若输入的字符数比指定的多,则getline()和get()将把剩余的字符留在输入队列中,getline()还会设置失效位,关闭后边的输入。

4、混合输入字符串和数字

     如图,当一行中需要同时输入字符串和数字的时候,cin会默认的读取最后一个字符即5,此时可以使用如下方法:

    ((cin >> ch) >> a) >> b;

    括号的最内部,cin读取字符ch后返回一个 cin 对象 然后继续读取整型数字a,同理返回cin对象,最后读取整型数字b。 

另一种混合输入,即在不同行获取数字和字符串(后边再来加图片,最近实在忙)。话不多说看方法:

    cin>> number;

    cin.get();利用get()获取换行符,然后就可以继续输入下一行的字符了。总结,不同行输入字符,就利用get()。


OK,今天就小更。以后遇到问题再来完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值