| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖, 1 人收藏
标题:欢迎各位拍砖 本程序的目的就是显示命令行参数 程序还不完善 但基本成型了 ...
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏(1)
已结贴  问题点数:20 回复次数:7 
欢迎各位拍砖 本程序的目的就是显示命令行参数 程序还不完善 但基本成型了{修改了一点 就是参数前面的N个空格,可以去除了}
#include <windows.h>  
#include <string.h>
#pragma  comment(linker,"/subsystem:\"console\" /entry:\"mainCRTStartup\"") //设置入口地址     
void main(void)   
{
    LPTSTR ptchar = GetCommandLine();  //获取整个命令行字符串
    char *p;    //搜索字符串临时指针
    char p3[50]={'\0'};
    char p2[20]={'\0'};         //放置可执行文件的参数
    p=strstr(ptchar," "); //在命令行中搜索空格
    if (p)
    {
      while (p)
      {
         if (*p==' ')
             p++;
         else
         {
             p--;
             break;
         }
      }
    }
    if (p)
    {
      strcpy(p2,p);    //copy空格以后的字符串到p2
      strcpy(p3,"本次传入的参数是:");
      strcat(p3,p2);   //连接字符串
      MessageBox(NULL,p3, "ok",MB_OK);  //显示参数
    }
    else
      MessageBox(NULL,"no parameter", "Error",MB_OK);
}


[ 本帖最后由 wp231957 于 2012-10-26 22:13 编辑 ]
搜索更多相关主题的帖子: comment include 执行文件 
2012-10-26 21:19
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:20 
你先运行一下看得到什么结果再说写的对不对

授人以渔,不授人以鱼。
2012-10-26 21:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用TonyDeng在2012-10-26 21:22:23的发言:

你先运行一下看得到什么结果再说写的对不对
好快的手啊   我改掉了  呵呵

DO IT YOURSELF !
2012-10-26 21:23
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
我这程序写的不伦不类  

我是由.CPP 编译成 控制台程序的  是在控制台下输出MESSAGEBOX窗口的

DO IT YOURSELF !
2012-10-26 21:26
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
C实在是不好玩

写这么几行代码  我搜索了大量的baidu

DO IT YOURSELF !
2012-10-26 21:28
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
Console程序发来不需要使用GetCommandLine()来获取命令行参数。

授人以渔,不授人以鱼。
2012-10-26 21:32
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用TonyDeng在2012-10-26 21:32:14的发言:

Console程序发来不需要使用GetCommandLine()来获取命令行参数。
什么ARGV吧  但是我用不来  不知道差在哪里

DO IT YOURSELF !
2012-10-26 21:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
GetCommandLine()是系统API函数,但C语言编译器及其语言库本身有更妥善的处理办法,应尽量避免直接调用API(特别是与线程有关的功能)。Console程序的入口函数main()有获取环境的机制,argc是命令行参数的个数,标志着后面char* argv[]字符串数组的元素个数,每个argv[]元素是一个以空字符为分隔符的单词(因为这是用sscanf()函数提取出来的字符串)。还有char* env[]是进程所在环境的设置参数,比如文件搜索路径之类,就在这里获得。

如果你想程序在源代码上有最大的可移植性,就尽量使用标准库函数,不要动辄使用API特性函数,除非程序框架本身是保证可移植的(比如.NET),才可以使用大量的特性函数。

授人以渔,不授人以鱼。
2012-10-26 21:41
快速回复:欢迎各位拍砖 本程序的目的就是显示命令行参数 程序还不完善 但基本 ...
数据加载中...
 
   



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

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