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

c primer plus书中的小错误

2016-03-24 18:11 337 查看
为了准备保研,这几天翻了翻c primer。

发现了书中的一点错误:

// example1.c -- 例子1
#include <stdio.h>
int main (void) {
unsigned long numOne = 1, numTwo = 2;
printf ("%ul   %ul", numOne, numTwo);
fflush (stdin);
getchar ();
return 0;
}




可以看出,printf()函数是将%ul当做%u和字符l的。

同样的,对于scanf()函数也是一样的。

// example2.c -- 例子2
#include <stdio.h>
int main (void) {
unsigned long numOne, numTwo;
if (scanf ("%ul %ul", &numOne, &numTwo) == 2)
printf ("Hello World!\n");
else
printf ("Error!");
fflush (stdin);
getchar ();
return 0;
}


结果可想而知:



估计prata爷爷觉得unsigned long符合语法语义规则吧,long unsigned总觉得让人不舒服。但是,结果看来long unsigned是正确的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言