判断是否退出
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编辑过]