c++ 一个简单的问题。。。
刚接触c++, 总看到如下的一个开始语句,
while(memset(buf,0,sizeof(buf)), fgets (buf, 1024, fp))
。。。
while( , ) 怎么while里面有2个参数?
------解决方案--------------------while(memset(buf,0,sizeof(buf)), fgets (buf, 1024, fp))
相当于
while(memset(buf,0,sizeof(buf))&&fgets (buf, 1024, fp))
------解决方案--------------------逗号表达式
按从左到右的顺序计算各个子表达式,整个表达式的值是最后一个子表达式的值
所以
while(memset(buf,0,sizeof(buf)), fgets(buf,1024,fp))
// ...
意思就是每次循环都将buf数组的内容赋值成0,然后调用fgets()函数,循环结束条件是fgets()返回0
------解决方案--------------------基本的逗号表达式...取,后面的结果.
------解决方案--------------------逗号表达式, 顺序执行, 最后的一个作为返回值.