免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: huihuiqi

[C] 看64行代码赢8积分 [复制链接]

论坛徽章:
0
发表于 2009-07-03 22:50 |显示全部楼层
while(--argc > 0 && (*++argv)[0][0] == '-')

论坛徽章:
0
发表于 2009-07-04 12:54 |显示全部楼层
getline函数:将行保存到s中,并返回该行的长度

为什么要这样做呢,做个小循环不就可以了么

论坛徽章:
0
发表于 2009-07-04 13:09 |显示全部楼层
看得都晕的

论坛徽章:
0
发表于 2009-07-05 09:24 |显示全部楼层
int getline(char s[], int lim)
{
        int c, i;
        i = 0;
        while(--lim > 0 && (c = getchar()) != EOF && c != '\n')
                s[i++] = c;
        if(c == '\n')
                s[i++] = c;
        s = '\0';
        return i;
}
倒数第二句应该是  s = '\0';

论坛徽章:
0
发表于 2009-07-08 16:05 |显示全部楼层
原帖由 yy_galois 于 2009-7-3 21:27 发表


用这么多复杂的技巧。

毫不客气的说,一看就是垃圾代码。

至于代码有没有错误,根本看都不想看。


呵呵,这是我在《C程序设计语言》上抄的,本书原著即为C语言的设计者之一Dennis M. Ritchie和著名的计算机科学家Brian W. Kernighan合著的一本介绍C语言的权威经典著作。

我自己已经查到错误了,是我抄错了。
while(c == *++argv[0])应该是:while(c = *++argv[0])

论坛徽章:
0
发表于 2009-07-08 16:11 |显示全部楼层

自己解决了……

呵呵,这是我在《C程序设计语言》上抄的,本书原著即为C语言的设计者之一Dennis M. Ritchie和著名的计算机科学家Brian W. Kernighan合著的一本介绍C语言的权威经典著作。

我自己已经查到错误了,是我抄错了。
while(c == *++argv[0])应该是:while(c = *++argv[0])

论坛徽章:
0
发表于 2009-07-08 16:20 |显示全部楼层

论坛徽章:
0
发表于 2009-07-08 18:54 |显示全部楼层
while(--argc > 0 && (*++argv)[0] == '-')

写对没,括号都不配呀。

while ((--argc > 0) && ((*++argv)[0] == '-'))

论坛徽章:
0
发表于 2009-07-08 19:39 |显示全部楼层
楼主确实粗心了

论坛徽章:
0
发表于 2009-07-09 21:08 |显示全部楼层
原帖由 rollin7 于 2009-7-8 18:54 发表
while(--argc > 0 && (*++argv)[0] == '-')

写对没,括号都不配呀。

while ((--argc > 0) && ((*++argv)[0] == '-'))


我的是对的!!你给包了那么多括号,还是和我一样不是嘛!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP