scanf 字面意思 scan+f(ormat) 按格式扫描
用户的输入在某种奇怪的设计哲学里是当作文件处理的,或者对应 C++ 里的流——就是一个可以单方向读入的(字符)串,读入以后再也没法回头读(有例外)。
在入门教材、学校/培训机构课程中的练习、示例当中涉及到交互的时候,经常会说 scanf 是用来“输入一个整数,输入一个字符串”的东西,仿佛能直接输入对应类型的对象,仿佛两个对象的输入之间是完全分开的。
其实实际的机制不那么直观,很多入门教材、课程以入门介绍为目的不会好好讲解 scanf 的原理和用法(也没有那个必要)。但是很多入门学习的人就是会在这些地方踩到陷阱,或者就是喜欢在这种地方钻牛角尖。
用户的输入在某种奇怪的设计哲学里是当作文件处理的,或者对应 C++ 里的流——就是一个可以单方向读入的(字符)串,读入以后再也没法回头读(有例外)。
在入门教材、学校/培训机构课程中的练习、示例当中涉及到交互的时候,经常会说 scanf 是用来“输入一个整数,输入一个字符串”的东西,仿佛能直接输入对应类型的对象,仿佛两个对象的输入之间是完全分开的。
其实实际的机制不那么直观,很多入门教材、课程以入门介绍为目的不会好好讲解 scanf 的原理和用法(也没有那个必要)。但是很多入门学习的人就是会在这些地方踩到陷阱,或者就是喜欢在这种地方钻牛角尖。