今天在编程的时候遇到的问题,查阅资料终得解,特来分享给大家!以备不时之需。
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,今天就小更。以后遇到问题再来完善。