您的位置:首页 > 编程语言 > C语言/C++

程序设计基础 scanf详解

2017-12-31 22:36 302 查看
scanf的作用是从缓冲区中按格式字符串的格式,读入相应的内容,按后面的参数表放到相应的地方。scanf的格式控制的一般形式为:%[*][宽度][F|N][h|l]类型字符,方括号内的含义都是可选项,类型字符的含义是编译器对对应信息的处理方式,1看成char型,然后传给int变量的话,只会覆盖其最低的一字节。

缓冲区buffer存放待操作的信息,%c因为要读入所有的char型数据,包括空白字符(空格,tab,回车),所以它是即时读取的,而%d等,%s等都是以空白字符为读取信号,每输入了一个空白字符,就将缓冲区中的数据向scanf中输送一次。

若非空白字符与模式字符串不匹配,则在此处结束scanf函数(这个未成功匹配的字符将留在缓冲区)

模式字符串中的空白字符作用是读掉所有缓冲区中的空白字符(也可以没有)。如scanf("[^\n]\n");这种放在末尾的\n必须要再输入一些其他字符,才可以判断出该结束了。

星号的作用:在%c,%d之间加上星号,表示从缓冲区里按该种类型读取一个内容,但是不输入到特定的某处,%[^\n]%*c可以用来读一个句子,同时读掉缓冲区里剩下的那个回车

另外,避免读char型数据读到回车,最好的办法是scanf(" %c",&c);理由如上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言