scanf,gets

来源:互联网 发布:power mac g4改装 编辑:程序博客网 时间:2024/05/22 08:20

1.scanf:一条语句可输入多个数据。

默认以空格来跳到下一个输入变量,若完成了本次调用时用户本次规定的输入量,可以缓冲起来,继续输入下一次调用该函数时的数据,发出执行指令后做一起处理。该函数不接收空格,多个空格等同一个空格。可以在一次规定的变量之间加上其他的符号来自定义跳转指令。

若完成了本次规定的输入量,回车表示执行本次要的操作;若未完成本次规定的输入量,则作用同于空格,是跳到下一个输入变量。该函数也不接收回车,多个回车等同一个回车。

故而要注意该函数只能正常接收无空格和字符串,当然含有回车符的字符串也是不行的。

 

2.gets:输入的对象是字符串,会把一切能接收进来的字符都接收进来(除了回车),如下面代码1中scanf()后面的空格和回车,以回车表示结束该字符串的输入结束。常以防干扰以代码2的形式和scanf();搭配。但是注意一切能接收是指上一个输入变量不要的字符,如上面的空格和回车,但是形如代码3,上一个回车是上一个字符串必要的结尾符,不能给下一个字符接收了。

 

1.getchar():输入字符的函数,一次输入单个字符,可以接收任意形式的字符,可以把它付给一个字符变量,也可以不要接收器。若要用来输入字符串,则可以用EOF来结尾,形式是while((c=getchar())!=EOF)

 

printf 行缓冲

scanf与printf用的是同一个缓冲区

printf是一个行缓冲函数,先写到缓冲区,满足条件后,才将缓冲区刷到对应文件中,刷缓冲区的条件如下:

    1 缓冲区填满

    2 写入的字符中有‘\n’ '\r'

    3 调用fflush手动刷新缓冲区

4 调用scanf要从缓冲区中读取数据时,也会将缓冲区内的数据刷新

 

   c语言中如何让输入的密码用 * *****表示

  char pass[20];
    for(i=0;i<20;i++)
    {
       pass[i]=getchar();
       if(pass[i]=='\r')   break;
       putchar('*');
    }

 

i++先使用后运算   使用完毕之后。结算运算符为①;②  , ③  函数()

++i先运算后使用      先自加后使用。

i=2

num=++i+++i+++i+++i

num=4+4+5+6

结果为19。两个才能构成一个运算。

 

++i被替换为变量名,i++被替换为数值。

 

 

 

++i被替换为变量名,i++被替换为数值。

 

 

 

 

 

 

 

 

 

0 0
原创粉丝点击