| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 521 人关注过本帖
标题:[求助]编译时出现警告,请教大家
只看楼主 加入收藏
joeguan2
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-5-10
收藏
 问题点数:0 回复次数:0 
[求助]编译时出现警告,请教大家


判断是否退出
if(getch()==KEY_ESC)
exit(0);
但是这样在输入文件名时要多按一次键才会正确输入(因为要判断getch())
怎样才能解决输入文件名不要多按一次键?

由于要输入文件上传不了,所以只好麻烦大家自己创建个要输入的文件

/*要求输入文件名称,若文件存在,则打印文件内容,测试只显示文件前5个字符*/
/*若文件不存在,则提示文件不存在,继续输入文件名称;若按ESC键,退出程序*/

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

/*Esc键的ASCII码*/
#define KEY_ESC 0x1B


/*判断文件打开成功与否,成功返回1,否则返回0*/
int IsOpenSuccess(char *filename)
{
FILE *fp;

if((fp = fopen(filename,"rb")) == NULL)
{
printf("\nCan not open the file!");
return 0;
}
else
{
fclose(fp);
return 1;
}
}

/*显示文件内容*/
void DisplayFile(char *filename)
{
char buf2[10];
char *buf=buf2;
int i;
FILE *fp;
fp = fopen(filename,"rb");
fread(buf,1,5,fp);
printf("\n\n");
for(i=0;i<5;i++)
putch(buf[i]);

fclose(fp);
}

int main(void)
{
int temp;
char file[20],*filename;


filename = file;
printf("Enter file name: ");
if(getch()==KEY_ESC)
exit(0); /*若按ESC键,退出程序*/
gets(filename);
temp=IsOpenSuccess(filename);
while(temp==0) /*文件不存在,继续输入文件名*/
{
clrscr();
printf("Not find file,Enter file name again: ");
if(getch()==KEY_ESC) /*若按ESC键,退出程序*/
exit(0);

gets(filename);

temp=IsOpenSuccess(filename);/*更新temp值*/
}
DisplayFile(filename); /*打印内容*/
getch();
return 0;
}

[此贴子已经被作者于2007-5-13 17:38:11编辑过]

搜索更多相关主题的帖子: 编译 警告 
2007-05-13 15:05
快速回复:[求助]编译时出现警告,请教大家
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014162 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved