读书人

文件操作小疑点

发布时间: 2013-06-26 14:29:32 作者: rapoo

文件操作小问题
先贴代码

#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);

这可不就是输出一行吗?

读书人网 >C++

热点推荐