文件的打开函数
#include"stdlib.h"#include"stdio.h"
void main(void)
{
FILE *fp;
char ch,filename[40],mode[4];
while(1)
{
printf("\n请输入一个文件名:");
gets(filename);
printf("\n输入模式:");
gets(mode);
if((fp=fopen(filename,mode))!=NULL)
{
printf("\n以%s模式成功打开文件%s!\n",mode,filename);
fclose(fp);
puts("退出请按x,其他继续。");
if((ch=getc(stdin))=='x')
break;
else
continue;
}
else
{
fprintf(stderr,"\n以%s模式打开文件%s失败!\n",mode,filename);
puts("退出请按x,其他继续。");
if((ch=getc(stdin))=='x')
break;
else
continue;
}
}
}
这是书上的例题,运行的结果 问题:先执行以r模式打开文件gg,打开失败执行
if((ch=getc(stdin))=='x')
break;
else
continue;
我百度了下if((ch=getc(stdin))=='x')中的getc(stdin)的作用是取得键盘缓冲区中的一个字符赋给ch(ch到后面怎么没用过,只是不断的把键盘缓冲区中的一个字符赋给ch),再continue;
跳出此次循环,进入下一循环,执行语句
printf("\n请输入一个文件名:");
gets(filename);
printf("\n输入模式:");
gets(mode);
问题出来了,为什么gets(filename);这一句没执行就gets(filename); 感觉还把 g赋给了fp=fopen(filename,mode)中的filename?->>>就 以w模式成功打开文件g 这句
在网上还找到两个差不多的程序
#include<stdio.h>
void main(void)
{
char a;
a=getc(stdin);
printf("%c\n",a);
}
#include<stdio.h>
void main(void)
{
while(1){
char a;
a=getc(stdin);
printf("%c",a);
}
}
为什么这两个差不多结果就不一样,第二个不就无限循环了下吗
麻烦大家讲解 谢谢