请问这个是怎么判断前导是否有零的呀(我我我我太笨了没看懂这个在哪真的很抱歉)
第二个里的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语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:482 |
2006年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:640 |
1009题解浏览:747 |
Hello, world! (C语言代码)浏览:714 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:582 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:520 |
C语言程序设计教程(第三版)课后习题4.9 (Java代码)浏览:609 |
母牛的故事 (C语言代码)浏览:479 |
发工资咯 (C语言代码)浏览:792 |
C语言程序设计教程(第三版)课后习题8.1 (C++代码)浏览:587 |