- 论坛徽章:
- 0
|
百思不得其解,万思不得其解<在线等待中........>
谢谢大家的帮助: 我找到答案了
我的代码是在一个函数中,在void main函数中的return 1 是不对的,我贴错了
- /* in my function */
- FILE *fptr;
- if( (fptr = fopen(filename,"r")) != NULL) // open one
- return 1; // return one
- else
- if ( (fptr = fopen(filename,"w+")) != NULL) //open two
- return 1; //return two
- else
- return 0;
- 我在3.0中,用Ctrl + F8 设置断点 在open one 那条语句上
- 再按F8 单步执行
- 若文件不存在时<第二次fopen后>;
- 确实就是跳转到了 return one 上<绿色的执行条>;
- 但是我将return two 改为 return 2;
- 就对了,我怀疑是tc3.0的问题,接下来,更奇怪的事情发生了
- 我又在两处的return 前各加一句fclose(fptr);
- 代码如下
- /* in my function */
- FILE *fptr;
- if( (fptr = fopen(filename,"r")) != NULL){ // open one
- fclose(fptr); //close one
- return 1; // return one
- }
- else
- if ( (fptr = fopen(filename,"w+")) != NULL){ //open two
- fclose(fptr); // close two
- return 2; //return two
- }
- else
- return 0;
- 文件不存在的情况下: open two 语句后 跳转到了
- close one !!!
- 之后又执行
- return one !!!!
- 于是就返回了 1 !!!!
- 于是,我就不知道怎么办了,现在实验中.............
复制代码 |
|