首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C 语言,文件例题解决方法

2012-03-26 
C 语言,文件例题#include iostream#include stdio.husing namespace stdint main(){FILE *fpchar ch

C 语言,文件例题
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
FILE *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==NULL)
{
printf("Cannot open the file\n");
exit(0); //终止程序
}
ch=getchar(); //2,词语据用该接受在执行scanf语句时最后输入的回车符
ch=getchar(); //3,接受输入的第一个字节
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
putchar(10); //向屏幕输出一个换行符
fclose(fp);
return 0;

}
解释一下2,和3,getchar()的用途,为什么会是那样

[解决办法]
scanf("%s",filename);
输入文件名以后,回车过后
此时回车是一个字符'\n'的
需要用getchar()获取到
3 getchar()才是真正要输入的字符
[解决办法]
以前也看到过这样的问题
因为scanf 输入字符串的时候是以‘\n’未结束的,
但是‘\n’本身不在数组中,
所以会残留在缓存区中,如果还有输入,scanf就会判断结束。
所以要利用getchar()获得那个回车,然后在输入。
如果你后面没有在输入的时候,就不需要使用这个了。
你的程序需要多次输入,所以,就需要利用getchar()了。

热点排行