argc 与argv的问题

风居住de街道 2016-10-22 02:28:00
新手,了解到argc 表示主程序输入参数的数目,*argv表示文件地址,或指向其他参数的指针,如果我直接输出argv[0],不应该是整个文件路径么,为什么只是'F' ?(F盘)? 只是路径名的首个字符?
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
风居住de街道 2016-10-22
  • 打赏
  • 举报
回复
引用 9 楼 paschen 的回复:
[quote=引用 7 楼 zhang_alongzd 的回复:] [quote=引用 6 楼 paschen 的回复:] [quote=引用 5 楼 zhang_alongzd 的回复:] [quote=引用 4 楼 paschen 的回复:] [quote=引用 2 楼 zhang_alongzd 的回复:] 不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0][/quote] 我的为什么不是啊?只输出了一个字符“F”,大神知道为什么么?[/quote] 没代码怎么知道你怎么写的[/quote] 代码就是直接输出啊
#include <iostream>  
  
using namespace std;  
  
void main(int argc,char *argv[])  
{  
    for(int i=0;i<argc;i++)  
    {  
        cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;  
    }  
    system("pause");  
}  
[/quote] 代码没问题,输出的会是路径。。[/quote] 我知道问题了,谢谢 我刚刚是在win32下写的,主函数接入点是_tmain(),不是main()
paschen 版主 2016-10-22
  • 打赏
  • 举报
回复
引用 7 楼 zhang_alongzd 的回复:
[quote=引用 6 楼 paschen 的回复:] [quote=引用 5 楼 zhang_alongzd 的回复:] [quote=引用 4 楼 paschen 的回复:] [quote=引用 2 楼 zhang_alongzd 的回复:] 不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0][/quote] 我的为什么不是啊?只输出了一个字符“F”,大神知道为什么么?[/quote] 没代码怎么知道你怎么写的[/quote] 代码就是直接输出啊
#include <iostream>  
  
using namespace std;  
  
void main(int argc,char *argv[])  
{  
    for(int i=0;i<argc;i++)  
    {  
        cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;  
    }  
    system("pause");  
}  
[/quote] 代码没问题,输出的会是路径。。
hijack00 2016-10-22
  • 打赏
  • 举报
回复
argv[0]是当前可执行文件的名称,可能是相对路径,也可能是绝对路径 在当前命令行下输入main 则argv[0]为main 在当前命令行下输入../main 则argv[0]为../main 在当前命令行下输入/home/xx/Desttop/main 则argv[0]为/home/xx/Desttop/main
风居住de街道 2016-10-22
  • 打赏
  • 举报
回复
引用 6 楼 paschen 的回复:
[quote=引用 5 楼 zhang_alongzd 的回复:] [quote=引用 4 楼 paschen 的回复:] [quote=引用 2 楼 zhang_alongzd 的回复:] 不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0][/quote] 我的为什么不是啊?只输出了一个字符“F”,大神知道为什么么?[/quote] 没代码怎么知道你怎么写的[/quote] 代码就是直接输出啊
#include <iostream>  
  
using namespace std;  
  
void main(int argc,char *argv[])  
{  
    for(int i=0;i<argc;i++)  
    {  
        cout<<"argument["<<i<<"] is: "<<argv[i]<<endl;  
    }  
    system("pause");  
}  
paschen 版主 2016-10-22
  • 打赏
  • 举报
回复
引用 5 楼 zhang_alongzd 的回复:
[quote=引用 4 楼 paschen 的回复:] [quote=引用 2 楼 zhang_alongzd 的回复:] 不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0][/quote] 我的为什么不是啊?只输出了一个字符“F”,大神知道为什么么?[/quote] 没代码怎么知道你怎么写的
风居住de街道 2016-10-22
  • 打赏
  • 举报
回复
引用 4 楼 paschen 的回复:
[quote=引用 2 楼 zhang_alongzd 的回复:] 不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0][/quote] 我的为什么不是啊?只输出了一个字符“F”,大神知道为什么么?
paschen 版主 2016-10-22
  • 打赏
  • 举报
回复
引用 2 楼 zhang_alongzd 的回复:
不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
是的 cout << argv[0]
apple_v1 2016-10-22
  • 打赏
  • 举报
回复
引用 2 楼 zhang_alongzd 的回复:
不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
int main(int argc, char *argv[])
风居住de街道 2016-10-22
  • 打赏
  • 举报
回复
不明白? 我的意思是直接输出argv[0],得到的结果会是整个路径名吗?
apple_v1 2016-10-22
  • 打赏
  • 举报
回复
请用char *argv[]或char **argv

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧