,scanf函数,其需要从键盘输入,将得到的数据放在缓冲区,并且读取数据,并根据参数格式将它们存储到附加参数所指向的位置。
scanf函数:int scanf(const char*format,……) scanf函数的参数至少为2个,第一个为格式控制字符串,其中包含格式说明符%,用于指定输出的数据并存储到附加参数所指向的数据的类型和格式。scanf的格式说明符遵循以下原则:
%[*][宽度][长度]说明符 其中说明符最为重要,它定义了提取哪些字符,它们的解释和参数的类型:
格式书说明符还包含了*(赋值忽略符号),宽度和长度,它们不是硬性的要求。其中*表示数据读取但是被忽略,即它不存储在参数指定的位置。宽度是指指定当前读取操作中要读取的最大字符数,长度(我还没搞懂,先留着填坑)。
scanf函数有返回值,其返回值是一个整数,该整数在数值上等于函数成功填充的参数列表的项数。如果发生读取失败或者在读取时到达文件的末位,则会返回EOF(end of file文件结束标志,数值上等于-1)。
scanf()与gets()getchar()的区别:
scanf函数在遇见空格,回车 跳格键的时候停止,其中会将回车键放在缓冲区。
getchar:每一次从键盘的缓冲区只可以读取单个字符,但是无限输出时,可以ctrl+z--<回车>停止输出,其中回车键也会放在缓冲区。
gets()则是读取字符串直到回车结束,但是回车键不属于该字符串(也不会存在于键盘缓冲区)。