SKY外语计算机学习

标题: c语言问题,main的argc,argv用处 [打印本页]

作者: rogan    时间: 2012-7-15 11:06
标题: c语言问题,main的argc,argv用处
关于这个的用处我简单发个主题,欢迎大家发言
作者: lifulinghan    时间: 2012-7-15 11:06
本帖最后由 sky_yx 于 2015-12-30 14:17 编辑

#include <stdio.h>没写。还没写return 01;


作者: rogan    时间: 2012-7-15 11:10
这个得在dos下才能体会,比如ping  cd  rm等后面接收的参数

  1. int main(int argv, char** argc)
  2. {
  3.    int i=0;
  4.     printf("argv=%d,\n",argv);
  5.     for(i=0;i<argv;i++)
  6.     printf("argc[%d]=%s",i,argc[i]);
  7. }
复制代码
程序没有测试,希望大家来调试
作者: rogan    时间: 2012-8-26 11:01
lifulinghan 发表于 2012-8-11 21:33
#include 没写。还没写return 01;

额,这个确实粗心了
作者: dzweather    时间: 2012-11-3 21:32
本帖最后由 sky_yx 于 2015-12-30 14:17 编辑

看下dos的命令:
Microsoft Windows [版本 6.2.9200]
(c) 2012 Microsoft Corporation。保留所有权利。
D:\>dir /w /x
驱动器 D 中的卷是 Data
卷的序列号是 000A-6AA9
D:\ 的目录
2012/09/26  18:50    <DIR>          PROGRA~1     Program Files
2012/09/23  09:10    <DIR>          PROGRA~2     Program Files (x86)
2012/11/02  23:49    <DIR>                       Tools
               0 个文件              0 字节
               3 个目录 195,302,260,736 可用字节
D:\>
---------------------
可以看到上dir是一个命令,带有两个参数/w和/x
因此:int main(int argv, char** argc)中的argv参数就是表示这个程序最后在dos情况下可以带2个参数,
而char**  argc就是这个参数数组的指针,  这个数组有两个元素,每个元素是指针分别指相各自的"参数字符串",如上面的"/w" "/x".
注意的是,这里的参数它包括最终的程序名本身的字符串(含路径),因此计数时要小心.
  1. #include <iostream>
  2. using namespace std;
  3. int main(int argc, char *argv[]){
  4.         char** p=argv;
  5.         for(int i=0;i<2;i++){
  6.                 cout<<*(p+i)<<endl;
  7.         }
  8.         return 0;
  9. }
复制代码
这时调试时注意要加上参数,否则无法执行。假定参数为:adfaf
结果如下:
C:\Users\bfdn\Documents\C-Free\Temp\未命名2.exe
adfaf
请按任意键继续. . .
它实际上相当于在dos下执行:
未命名.exe  adfaf


作者: 格式化    时间: 2013-6-27 00:39
本帖最后由 sky_yx 于 2015-12-30 14:17 编辑

路过!






欢迎光临 SKY外语计算机学习 (http://skywj.com/) Powered by Discuz! X2.5