//怎样向文件读写字符,本体我的问题是为什么没有用fgetc函数逐渐输入字符,还有为什么我在资源管理器里找不到新建的文件?
#include
#include
int main()
{
FILE * fp;
char ch,filename[10];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp = fopen("filename","w")) == NULL)
{
printf("无法打开此文件\n");
exit(0);//终止程序
}
ch = getchar();//这个语句不理解,
printf("请输入一个准备存储到磁盘的字符串(以#结束):");
ch = getchar();
while(ch != '#')
{
fputc(ch,fp);
putchar (ch);
ch = getchar();
}
fclose(fp);
putchar (10);
return 0;
}
用来接收你后面输入的换行符。scanf()函数按ENTER结束输入,但是scanf不会捕获换行符,换行符存在输入的缓冲区里面,如果不用getchar()捕获,就会被后一个getchar()捕获,这样文件里面就会先存入一个空行。
#include <stdlib.h>
#include <stdio.h>
int main()
{
FILE * fp;
char ch,filename[10];
printf("请输入所用的文件名:");
scanf("%s",filename);
if((fp = fopen(filename,"w")) == NULL)//去掉双引号
{
printf("无法打开此文件\n");
exit(0);//终止程序
}
ch = getchar();//读取scanf留在缓冲区的回车
printf("请输入一个准备存储到磁盘的字符串(以#结束):");
ch = getchar();
while(ch != '#')
{
fputc(ch,fp);
putchar (ch);
ch = getchar();
}
fclose(fp);
putchar (10);
return 0;
}