最近看题解,总是有大佬用scanf操作打破我的认知,让我怀疑自己大一到底有没有学过C语言…这里就只讲两个常见操作.
while(scanf("%d",&a)!=EOF)
{
//操作
}
scanf()的返回值是正确输入的个数,EOF表示文件的末尾或者是遇到输入的错误,scanf的返回值就是EOF,EOF在编译器中的定义为-1,比如我要输入两个整形数字,那么返回值就为2,输入一个整形数字,返回值就是1.
while(~scanf("%d",&a))
{
//操作
}
细心的同学可能发现发现’~'就是位运算中的取反,那么-1的取反是多少呢?不管是多少,反正一定是正数(因为在整数表示中负数的最高位为1,取反了,不就表示正数了吗?)
所以我们得出结论,代码块二和代码块一本质都是一样的,只是形式不一样而已
版权声明:本文为Alanadle原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。