天天看点

C/C++输入输出,函数区别

c++:

    1).cin.get()不会读取换行符,换行符还在输入流中

    2).cin.getline()会读取换行符,并把换行符从输入流中丢掉

    3).cin.get()读取空行后将设置失效位(failbit),意味接下来的输入将被阻断关闭输入 (注:只读取到换行符的时候,意味读取到空行,可以使用cin.clear()命令恢复);

    4).当输入行包含的字符数比指定的多时,cin.getline()会设置失效位(failbit),并关闭输入

    5).当cout后跟的是字符型的指针的时候,将打印的是该指针所代表的内容而不是指针的地址(char * 特殊),如果要打印该指针的地址需用(int * )转换

 6)当cin读入的数据与目标变量不一致时将会出现以下四种情况:(cin不读取换行符以及空白字符)

       a).目标变量的值不变

       b).不匹配的输入继续留在输入流中

       c).cin的调用将返回一个false

       d).设置失效,阻断接下来的输入(可以使用cin.clear()命令恢复)

c:

    1).gets()从stdin流中读取字符串,直至接受到换行符或EOF时停止,(不会限定读取多少)

             换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串

    2).scanf("%s",&s)就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,

          (不会限定读取多少,也不会读取换行符)

    3).fgets(str,n,fp),当读取到n-1或者遇到换行符的时候停止,可以限定读取的字符数

      会把换行符读入字符串内