读书人

猎奇怪啊

发布时间: 2012-06-21 13:42:41 作者: rapoo

好奇怪啊?

C/C++ code
for (int countNum =0; temcBuffer[countNum]!=0x0A; countNum++) //取行头开始到换行的数据(指令)        {        temcBuffer[countNum]=fgetc(fpCmd);                    }  


为什么temcBuffer[countNum]已经是0x0a了还是不退出循环,好奇怪啊?
整段代码是?
C/C++ code
temchar =fgetc(fpCmd);        if(temchar==';')     //遇到英文分号就丢弃后面的内容直到遇到换行符        {            while (temchar!=0x0A)  //注释是在一行内就写完                 temchar=fgetc(fpCmd);            }                   for (int countNum =0; temcBuffer[countNum]!=0x0A; countNum++) //取行头开始到换行的数据(指令)        {            temcBuffer[countNum]=fgetc(fpCmd);            //if (temcBuffer[countNum] ==0x0a)        //    break;        }          fclose(fpCmd)


[解决办法]
引用:
有问题

[解决办法]
加断点,单步调试。你确定temcBuffer[countNum]==0x0A的时候没有退出么?
[解决办法]
temcBuffer[countNum]=fgetc(fpCmd);

这里是\n了,然后循环countNum++了,然后判断temcBuffer[countNum]!=0x0A当然就判断失败了。

条件是进入循环前判断的,操作是循环结果后条件判断前执行的。
[解决办法]
C/C++ code
for (int countNum =0; (temcBuffer[countNum]= fgetc(fpCmd))!=0x0A; countNum++)     ; 

读书人网 >C++

热点推荐