| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1529 人关注过本帖
标题:关于main(int argc,char *argv[])的应用问题,求大虾解一下代码那错了,想输 ...
只看楼主 加入收藏
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 19楼 beyondyf
如果改成if(argc!=3);

if(argv[1][0]>='1'&&argv[1][0]<='7')

可以得正确答案
2011-08-31 20:54
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
不过输入的时候只带了一个参数  哈哈哈
2011-08-31 20:55
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
回复 19楼 beyondyf
一直断网,才连发了10几次,现在用手机上了。多加那句代码后,多输出了个1

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-08-31 20:56
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
3?
不知道你是怎么输入的。
在你的main函数开头加上这样几句,自己看看你输入了些什么吧。
for(i = 0; i < argc; i++)
  printf("argument[%d] = \"%s\"\n", i, argv[i]);

重剑无锋,大巧不工
2011-08-31 20:57
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
你这么改:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *Day[]={"Monday","Tuesday","Wednesday","thursday","Friday","Saturday","Sunday"};
void Dchange(char *pstr);
int main(int argc, char *argv[])
{  
    printf("%d",argc);
    if(argc!=3)   //判断输入格式是否为两位
    {
       printf("输入格式错误 ,请按照例子输入,如ChangeDay 1");
       exit(0);
    }
  
  
  
    if(argv[2][0]>='1'&&argv[2][0]<='7')
    {
    printf("英文表示为:\n");
    Dchange(argv[2]);
    }
    else
    {
    printf("输入为整数且范围在1~7");
    exit(0);
    }
  
  
}
   void Dchange(char *pstr)
{
  
      printf("%s",Day[(atoi(pstr)-1)]);
}


我试过了,输入changeday 2,可以得Tuesdayna ,不知道是不是你要的结果
2011-08-31 21:00
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 23楼 fourleaves
这说明你的第一个参数没问题。
告诉我,我上一个贴子你是怎么执行的,执行结果是什么。
不知道你多输入了什么,空格?
再不行,将argc != 2 改成 argc > 1 肯定没问题了,这样是乎略多余的参数。

重剑无锋,大巧不工
2011-08-31 21:00
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
回复 24楼 beyondyf
argument[0]="D:\Backup\我的档案\C-Free\Projects\ChangeDay\mingw5\ChangeDay.exe"

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-08-31 21:03
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
只输出这么一句?你没加参数?

重剑无锋,大巧不工
2011-08-31 21:05
晓云林
Rank: 2
等 级:论坛游民
帖 子:46
专家分:35
注 册:2011-8-29
收藏
得分:0 
回复 28楼 beyondyf
我也是这么怀疑的
2011-08-31 21:07
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
回复 28楼 beyondyf
有啊,但程序运行后,我没输入,当然就只输出一个了。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-08-31 21:07
快速回复:关于main(int argc,char *argv[])的应用问题,求大虾解一下代码那错了 ...
数据加载中...
 
   



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

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