请问这个是怎么判断前导是否有零的呀(我我我我太笨了没看懂这个在哪真的很抱歉)
第二个里的else {printf("N\n");continue;} 只要不结束不管正确与否就一直输出N,else if(strlen(s)!=0)判断是否有多于字符
ACOOLFISH 2020-08-15 11:12:15 |
确实,没考虑完全,我在else后又加了判断,现在第二个可以过了,多谢提醒
如果输入正确ip后添加.+其他字符会被判断为正确地址,如:12.34.56.78.asdasf
ACOOLFISH 2020-08-07 14:38:25 |
可以用 if(strcmp(s,end)==0) return 0;//判断是否结束 else {printf("N ");continue;} 来判断是否后面有剩余的字符,一遍就过了,没有考虑完全
我是用这个 while((k=scanf("%d.%d.%d.%d",&a,&b,&c,&d))!=EOF) 作为循环条件的,没有加 gets(s); if(strcmp(s,end)==0) return 0;这一部分,我本以为可以读取到EOF结束,但是发现不行,判断输出超限。然后我把这一部分加上,然后把scanf这一块加入到函数体中,把while设置为一直循环,结果也不行。为什么这两个循环结束条件非要在一起使用呢。
ACOOLFISH 2020-07-24 15:53:37 |
题目最后是输入字符串End of file代表结束,用while((k=scanf("%d.%d.%d.%d",&a,&b,&c,&d))!=EOF)可能会判断不出来是否结束,if(strcmp(s,end)==0) return 0;是作为判断是否结束,如果读到文件结束while((k=scanf("%d.%d.%d.%d",&a,&b,&c,&d))!=EOF)会起作用
为什么while循环里的表达式前面要加按位取反的符号呢?
Garfield 2020-07-08 21:32:56 |
输入a.b.c.d时.scanf返回0,while判断条件为假;结束循环
出家人 2020-07-10 09:49:17 |
@133379378389 哦哦,多谢大佬解答,还有个小问题,while循环里第一个gets(s);的作用是为了捕获前面scanf的输入内容吗?
ACOOLFISH 2020-07-14 09:16:52 |
@636861284 第一个get(s)是为了捕获没有被scanf获取的,例如输入End of file,那么scanf不会读取,End of file 还在缓冲区中,要通过gets()把未被scanf读取的字符从缓冲区中提取出来,用来判断是否结束
出家人 2020-07-19 08:11:41 |
哦哦,多谢大佬解答
上车人数 (C语言代码)浏览:816 |
简单的a+b (C语言代码)浏览:641 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
【计算直线的交点数】 (C语言代码)浏览:1501 |
字符逆序 (C语言代码)浏览:645 |
打印十字图 (C语言代码)浏览:2822 |
A+B for Input-Output Practice (VII) (C语言代码)浏览:566 |
DNA (C语言代码)浏览:798 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:639 |