cin
我们最常用的输入方式,可以根据需要输入int char string等等,只是取决于您后面跟着的对象。
而且在输入流中可以直接无视掉前面的所有空格 换行符。直接找到第一个字符。
但是如果输入的字符和对象货不对板,他就会报错。而且在用他的时候,由于他本身就会自动跳过输入流中前面的空格 换行,所以我们在使用他的时候,前面的换行和输入可以不管他,但是string的中间有空格和换行,就会直接中断。所以用来做string的输入时要特别留意空格。还有,这个输入不会像getline一样,处理结尾字符。但是如果你统一用cin的话,那下一个cin又会自动跳过前面的换行符和空格。
getchar
就像c语言的getchar一样,就输入一个字符,这个字符不回绕过换行,空格等等,会直接把流中的下一个字符如实的输入进来,用来清理一些杂七杂八的字符,或者单纯的读入下一个字符挺好的
-
他会把字符当作char读取进来,但是你要拿int来装他,他也是能变成一个整形数,有趣的是,如果我们拿auto来装他,编译器会觉得这是int。
-
输入换行符或者空格的时候,能够处理空格,我们通常就拿getchar来把换行符给处理掉。
getline
这个就是专门用于string输入的。他可以输入空格,并且在下一个换行符前停止。然后丢弃掉下一个换行符。是一个很好用的string输入函数。参数时cin和string对象。但是,,他不会自动处理前面的换行符。所以如果你前面一个用的cin输入,那么下一个再用getline,可能会导致后面一个字符串输不进来。
1.getline表达式有返回值的,他的返回值是istream的引用,也就是cin,所以可以跟着这个继续做输入。 我们看着下面这段代码。在后面这里首先执行getline输入了第一行的字符串。直到碰到了换行符。碰到换行符之后,会直接将换行符给丢弃掉。然后在执行输入一个单独的char 也就是s。然后再读取后面的一个字符串
2.getline还有另外一个默认参数,那这个时候,getline就能够很轻松的读取换行符了。当他找到下一个a的时候,会停在a前,然后把a处理掉。接下去读下一个字符串。