scanf 和printf的类型不安全性
参考《Effective C++ , Item 2》
文中所述:
scanf 和printf 很轻巧,很高效,你也早就知道怎么用它们,这我承认。但尽管他们很有用,事实上scanf 和printf 及其系列还可以做些改进。尤其是,他们不是类型安全的,而且没有扩展性。
何为类型安全?现通过一个简单的例子证明
参考如下代码:
int main() { float q ;
scanf("%f", &q);
printf("%d",q);//要求输入一个整形,但是给的是一个浮点型 return 0; }
调试查看输出结果为:
输入 _ 5.0 ,输出结果是: 0
输入 _ 5.1 ,输出结果是相当大的一个数。
改用cout,输出正常。因为类型安全和扩展性是C++的基石。

浙公网安备 33010602011771号