标题:问题很简单。。有个语句作用是什么?对于那个语句要如何输入?
只看楼主
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
结帖率:83.33%
已结贴  问题点数:5 回复次数:11 
问题很简单。。有个语句作用是什么?对于那个语句要如何输入?
题目:编写一段程序,将一个字符、零个或多个文件名作为命令行参数。如果字符后没有参数跟随,程序读取标准输入文件。否则,程序依次打开每个文件,然后报告 每个文件中该字符的出现次数。文件名和字符本身也与计数值一起报告。程序中包括错误检查,以确定参数数目是否正确和是否能打开文件。如果不能打开文件,程 序要报告这一情况然后继续处理下一文件。


#include <stdio.h>
#include <stdlib.h>
int count(char ch, FILE *fp);
int main(int argc, char *argv[])
{
    int i;
    char ch;
    FILE *fp;
    if (argc<2)
    {
        printf("no char?\n");
        exit(1);
    }

    ch = argv[1][0];

    if ( argc == 2 )/*这个if有什么作用?有什么作用?*/
    {
        printf("input a article:");
                printf("In your input : %c has been appeared %d times.\n",ch,count(ch,stdin));
    }

    else
        for (i=2;i<argc;i++)
        {
            if( ( fp = fopen(argv[i],"r") ) == NULL )
                printf("Can't open %s\n",argv[i]);
            else
            {
                printf("In %s : %c has been appeared %d times.\n",argv[i], ch, count(ch,fp));
                fclose( fp );
            }
        }
        
        return 0;
}


int count(char ch, FILE *fp)
{
    int n=0;
    char ch2;
    while( (ch2=getc(fp)) != EOF)
        if( ch == ch2 ) n++;
        return n;
}
搜索更多相关主题的帖子: include count 如何 
2013-12-31 23:31
a1004573547
Rank: 2
等 级:论坛游民
帖 子:78
专家分:25
注 册:2013-3-11
得分:1 
然后呢
2014-01-01 18:07
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
得分:0 
if ( argc == 2 )/*这个if有什么作用?要怎么输入,这个语句才能执行*/
    {
        printf("input a article:");
                printf("In your input : %c has been appeared %d times.\n",ch,count(ch,stdin));
    }
2014-01-01 22:37
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:1 
以下是引用c718382171在2014-1-1 22:37:36的发言:

if ( argc == 2 )/*这个if有什么作用?要怎么输入,这个语句才能执行*/
    {  
        printf("input a article:");
                printf("In your input : %c has been appeared %d times.\n",ch,count(ch,stdin));
    }

argc給出命令行參數的個數

授人以渔,不授人以鱼。
2014-01-02 08:34
kajj_0321
Rank: 2
等 级:论坛游民
帖 子:47
专家分:93
注 册:2013-10-23
得分:1 
那个if就是在判断--如果字符后没有参数跟随

kajj->1314 努力每一天。
2014-01-02 09:58
GeekLs_com
Rank: 2
等 级:论坛游民
帖 子:10
专家分:42
注 册:2013-7-26
得分:1 
2个参数的时候

geekls_com作品发布平台,把你的创意向全世界展示吧!
2014-01-02 10:02
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
得分:0 
回复 5楼 kajj_0321
它满足argc==2时,要求你输入,要怎么输入
2014-01-02 23:26
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
得分:0 
回复 4楼 TonyDeng
满足argc==2的时候,它要求你要输入,这时无论我怎么输入,它都不响应
2014-01-02 23:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
你自己都提到命令行參數,答了你又不聽。

授人以渔,不授人以鱼。
2014-01-02 23:40
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
是在命令行中啓動程序時輸入,比如在【運行】對話框中輸入"notepad myfile.txt"這樣的指令,notepad.exe程序就會在main()中給出argc=2的值,因爲命令行有兩部分參數,argc就是判別有多少個部分的。再如你的程序名爲myapp.exe,再命令行中啓動它,後面帶若干參數,如myapp 1.txt 2.txt,這樣就有argc=3,而argv[0]是"myapp",argv[1]="1.txt",argv[2]="2.txt",明白了嗎?

[ 本帖最后由 TonyDeng 于 2014-1-2 23:45 编辑 ]

授人以渔,不授人以鱼。
2014-01-02 23:42



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




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

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