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

文件操作小疑点

2013-06-26 
文件操作小问题先贴代码#includestdio.h#includestdlib.h#define BUF 256int has_ch(char ch,const ch

文件操作小问题
先贴代码

#include<stdio.h>
#include<stdlib.h>
#define BUF 256
int has_ch(char ch,const char * line);
int main(int argc,char * argv[])
{
FILE *fp;
char ch;
char line[BUF];

if(argc!=3)
{
printf("Usage:%s character filename\n",argv[0]);
exit(1);
}
ch=argv[1][0];
if((fp=fopen(argv[2],"r"))==NULL)
{
printf("Can't open %s\n",argv[2]);
exit(2);
}
while(fgets(line,BUF,fp)!=NULL)
{
if(has_ch(ch,line))
fputs(line,stdout);\\为什么是输出的一行,而不是一个字符?
}
fclose(fp);
return 0;
}

int has_ch(char ch,const char *line)\\这个函数只是证明相同的字符是哪一个
{
while(*line)
if(ch==*line++)
return (1);
return 0;
}

has_ch函数的功能是遇到相同字符返回1;为什么输出了一行?
比如文件里字符有abcde;而我在命令行参数里输入e;他把这一整行都输出来了?
[解决办法]
fputs(line,stdout);

这可不就是输出一行吗?

热点排行