1.2 象形字体扰乱视听

要特别注意形状相近的字母,最典型的是小写字母“l”和数字“1”。以下面的程序为例。

【例1.1】演示混淆字母“l”和数字“1”的错误程序。


#include <stdio.h>
void main
()
{
      double x=0
; 
      printf
("
输入x
:"
);
      scanf
("%1f"
,&x
);  
      printf
("
输出x
:%f\n"
,x
);
}
  

问题是编译系统判断不出这类问题,虽然程序编译正确,但运行结果却是错误的。本书约定使用下划线标注输入并以回车键结束,以后不再赘述。下面是演示示范。


输入x
:
7.8
输出:0.000000
  

错误的原因是“lf”中的小写字母“l”错为数字“1”。为了预防这种错误,可以使用大写字母L,即


scanf
("%Lf"
,&x
);
  

C语言是对大小写敏感的,但对printf格式符号“F”和“f”、“L”和“l”等是不分大小写的,利用这个特点,既能预防这类笔误,又能提高可读性。

《C语言解惑》