do..while 是重复叙述的循环,可以分成两种模式。 最单纯的就是只有 while 的循环。用来在指定的条件内,不断地重覆指定的步骤。语法如下 while (expr) { statement } 其中的 expr 为判断的条件,通常都是用逻辑运算符号 (logical operators) 当判断的条件。而 statement 为符合条件的执行部分程序,若程序只有一行,可以省略大括号 {}。 下例很有趣,要电脑的浏览器出现十次 "以后不敢了" 的字符串,前面并加上数字,表示说了...
fpin=fopen("1.txt","w"); fpout=popen("/bin/ls","r"); while(fgets(line,MAXLINE,fpin)!=NULL) { if(fputs(line,fpout)==EOF) printf("error"); } 是正确的 而 fpin=fopen("1.txt","w"); fpout=popen("/bin/ls","r"); do { if(fgets(line,MAXLINE,fpin)==NULL) printf("error"); }while(fputs(line,fpout)!=EOF); 错误那? 下面的那一个是死循环; [ 本帖最后由 mu_mu8309 于 2006-12-1 15:04 编...
一直觉得do {} while (false)在写宏时比较有用,但刚刚看到有人这么用: [CODE] do { if (first_condition) break; if (second_condition) break; if (outer_condition){ if (inner_conditio){ break; } } .... } while (false); [/CODE] 据说这样写可以不用goto,但个人感觉并不比用goto好,而且还多了一层嵌套,大家怎么认为呢?或者作者还有什么别的用意?
main() { int count=1,sum=0; do { sum=sum+count; count++; } while(count<=100) printf("sum=%d\n",sum); } [root@mylinux c]# gcc dowhile.c dowhile.c: In function `main': dowhile.c:9: error: syntax error before "printf"
[code]#include
有一个文件内容如下: PID 28606 197 26483 3036 28488 24802 14657 24743 166 181 202 162 165 232 169 Total: 我想当第一列的数值相加,除去行内容为pid和Total,要用do-while循环!
听说有do {...break...} while (false) 这种写法, 但是ANSI C好像只允许在switch语句中使用break? [ 本帖最后由 dl1987 于 2009-7-22 10:48 编辑 ]
看到很多宏定义里边都有类似的结构,比如: #define err_abort (code, text) do { \ fprintf (stderr, "%s at \"%s\":%d: %s\n", \ text, __FILE__, __LINE__, strerror (code)); \ abort (); \ } while (0) 这里用while只执行一次,个人觉得do...while(0)仅仅是把里边的语句封装到一个代码块而已,并无他用。 是不是这样子的?