好奇怪啊?
- 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++) ;