回 帖 发 新 帖 刷新版面

主题:求助!

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define M 20
int main(int argc,char *argv[])
{
    char ch[M];
    FILE *fp;
    if((fp = fopen(argv[2],"r"))==NULL)
    {
        printf("Can't open file %s",argv[2]);
        exit(1);
    }
    while(fgets(ch,M,fp)!=NULL)
        if(strncmp(ch,argv[1],strlen(argv[1]))==0)
          puts(ch);
    fclose(fp);
    return 0;
}
从文件中读取行并找一个字符串,如果在就把这行打印出来!
程序运行了没有反应,但编译器没报错![em6]

回复列表 (共5个回复)

沙发

程序看上去问题不大,不知道楼主是不是测试方法不对

测试用例:
编译生成a.exe
测试文件1.txt内容:
abcd
abc
deadsf

在控制台下运行:a abc 1.txt

输出:
abcd

abc

基本正常,只是需要处理一下fgets读入的回车符

板凳


我是这样测试的,但输入命令回车后没反应!

3 楼


[em21]来个人救命啊.....!

4 楼

自己调试一下看看呗:)
为啥楼主用strncmp而不用strstr呢:)

5 楼

哦!我试下!

我来回复

您尚未登录,请登录后再回复。点此登录或注册