来看看啊,我的程序为什么会重复输出?
当碰到(有=号,也有;号)的情况时,会输出两次那个句子,为什么?
#include <string.h>
#include <stdio.h>
#include <conio.h>
void main ()
{
FILE *funny,*fp;
char a[1001];
char line[1001],line3[1001];
char *pdest1,*pdest2;
funny=fopen("c:boot.ini","r");
fp=fopen("a.txt","w");
while (!feof(funny))
{
fgets(a,1000,funny);
if ((pdest2=strchr(a,';'))!=NULL) /*有;号*/
*pdest2='\0'; if (strchr(a,';')==NULL) /*没有;号*/
{
if((strchr(a,'[')!=NULL)&&(strchr(a,'=')==NULL))/*有[号,没有=号*/
{
strcpy(line,a);
if(strchr(line,']')!=NULL)
{
pdest1=strchr(line,']');
*(pdest1+1)='\n';
fputs(line,fp);
puts(line);
}
}
else if((strchr(a,'=')!=NULL)&&(strchr(a,'[')==NULL))
{
fputs(a,fp);
puts(a);
} else if((strchr(a,'[')!=NULL)&&(strchr(a,'=')!=NULL))
{
strcpy(line3,a);
fputs(line3,fp);
puts(line3);
}
}
};
fclose(funny);
fclose(fp);
getch ();
}
当碰到(有=号,也有;号)的情况时,会输出两次那个句子,为什么?
#include <string.h>
#include <stdio.h>
#include <conio.h>
void main ()
{
FILE *funny,*fp;
char a[1001];
char line[1001],line3[1001];
char *pdest1,*pdest2;
funny=fopen("c:boot.ini","r");
fp=fopen("a.txt","w");
while (!feof(funny))
{
fgets(a,1000,funny);
if ((pdest2=strchr(a,';'))!=NULL) /*有;号*/
*pdest2='\0'; if (strchr(a,';')==NULL) /*没有;号*/
{
if((strchr(a,'[')!=NULL)&&(strchr(a,'=')==NULL))/*有[号,没有=号*/
{
strcpy(line,a);
if(strchr(line,']')!=NULL)
{
pdest1=strchr(line,']');
*(pdest1+1)='\n';
fputs(line,fp);
puts(line);
}
}
else if((strchr(a,'=')!=NULL)&&(strchr(a,'[')==NULL))
{
fputs(a,fp);
puts(a);
} else if((strchr(a,'[')!=NULL)&&(strchr(a,'=')!=NULL))
{
strcpy(line3,a);
fputs(line3,fp);
puts(line3);
}
}
};
fclose(funny);
fclose(fp);
getch ();
}
解决方案 »
- 我想实现在子线程里既能接受到socket数据达到的消息又能实现线程内部通信 代码如下
- CDHtmlDialog有没有类似SendMessage的函数?
- 哎,怀疑自己是不是心理变态,看着分数非要丢光了才舒服
- 多文档中打开的每个文档的标题怎么自己设定
- 请问在mfc中如何把rtf格式的文件转换成html的文件?(小女子在线恭候)
- 关于CImageList的用法疑问
- 一个奇怪的编译错误!!!!
- 一个困扰了我很久的问题(关于音频文件的播放)
- 如何编程让光驱打开关闭。如何编程把优盘卸载掉?
- sql中是怎样修改数据表结构的?
- 用VC创建一个简单的写注册表小程序需要怎么办?我希望VC不要给我加太多东西
- 关于代理的问题?
fgets(a,1000,funny);要对a每次做初始化
你只要把程序改为: ......
fp=fopen("a.txt","w");//再这行下面加上:
fgets(a,1000,funny);
while (!feof(funny))
{
fgets(a,1000,funny);//把这一行注释掉 ......//你所作的处理不变 fgets(a,1000,funny);//在循环体的最后加上这句
}
fclose(funny);
fclose(fp);
getch ();
}不正确不给分.