标题:高手快来帮忙。。还是MAIN函数命令行问题。。。大家来帮帮忙。上次就没解决 ...
只看楼主
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
结帖率:96.67%
已结贴  问题点数:20 回复次数:24 
高手快来帮忙。。还是MAIN函数命令行问题。。。大家来帮帮忙。上次就没解决好。纠结。涨分了
程序代码:
#include <stdio.h>
#include <string.h>
void main (int argc,char *argv[])
{

    FILE *inp;
    char str[10];
    printf("%d\n",argc);

   
   
    if((inp = fopen(argv[2],"r"))==NULL) //应该是这里出问题了。。文件打不开。。。。
        printf("cant open");
    while(fgets(str,10,inp)!=NULL)
    {
        if(strstr(str,argv[1]))
        printf("%s",str);
    }


}
我用开始>运行>cmd>路径>.exe abc abc.txt
可为什么老是出错,我把abc.txt和.exe也放到一块了 啊
就是输出cant open!!!!
请大家帮忙指点迷津!
我用的是VC6.0

[ 本帖最后由 gmac 于 2010-11-11 23:57 编辑 ]
搜索更多相关主题的帖子: MAIN 函数 手快 命令 纠结 
2010-11-11 19:33
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
得分:0 

没人愿帮吗?
我感觉对高手来说应该是个很简单的问题啊!
顺手回答一下啊!
还在等。。。。。
2010-11-11 19:46
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
得分:0 
看来大家都去关注骂来骂去的帖子了
2010-11-11 19:53
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
不懂是什么意思??

愿用余生致力编程
2010-11-11 20:32
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:3 
==NULL)
改成
)==NULL

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-11-11 21:17
gmac
Rank: 2
等 级:论坛游民
帖 子:174
专家分:85
注 册:2010-9-28
得分:0 
回复 5楼 御坂美琴
还是不行啊!
题目是这样子
程序练习
编写一个程序,接受命令行参数,第一个参数为程序名,第二个参数为一个字符串,第三个参数为文件名,程序打印文件中包含该字符串的所有行。
2010-11-11 21:25
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
程序代码:
# include <stdio.h>
# include <stdlib.h>
# include <string.h>

int main(int argc , char* argv[])
{
    FILE *filepoint ;
    char string[100] ;
    if((filepoint = fopen(argv[3] , "r")) == NULL)
    {
        printf("Can't Open The File!\n") ;
        exit(EXIT_FAILURE) ;
    }
    while(!feof(filepoint))
    {
        fgets(string , sizeof(string) , filepoint) ;
        if(strstr(string , argv[2]) != NULL)
            printf("%s" , string) ;
    }
    fclose(filepoint) ;
    return 0;
}
这是我刚才给你写的程序,我觉得题目要求应该是包含字符串,并不是两个字符串相等。你在dos窗口下首先应该输入可执行文件的路径,然后才是你要依次输入的
可执行文件名,字符串,然后要输入的文件也要正确的输入该文件的路径,而不是就光一个文件名!!!!

愿用余生致力编程
2010-11-11 22:24
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
得分:0 
光文件名是可以的
另,5楼你说还是不行的话,那你把你的txt放在你的dsw工程所在目录下,同时在debug/release目录下也各放一份

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-11-11 22:32
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
得分:0 
关于在dos下怎么输入命令行参数本人不是很十分了解,希望御版能够详细的讲解一下!

愿用余生致力编程
2010-11-11 22:41
八画小子
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:37
帖 子:705
专家分:2043
注 册:2010-11-11
得分:0 
首先,我很菜。但我感觉主函数有问题。main()既然接受一个int和一个char*,怎么可能接受一个来自系统的字符串呢?是不是应该把第一个参数修改一下?
2010-11-11 23:02



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-325611-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.095278 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved