argv[1]这个文件在哪里?解决思路
argv[1]这个文件在哪里?
下面这个程序是我几乎复制书上的程序,我想知道
问题一:“Usage: %s filename”是什么意思?
问题二:另外,argv[0]是文件名,argv[1]也是文件名,argv[0]这个文件名可以通过编译黑窗口看到,是以exe为扩展名,但是argv[1]到哪里去看呢?
我在cmd窗口中输入几个参数依然只能看到下面:
E:\>"Microsoft Visual Studio\MyProjects\11\Debug\11.exe " qwev rty
Usage: Microsoft Visual Studio\MyProjects\11\Debug\11.exe filename
应该说除了argv[0]外,我还输入了“qwev”与“rty”呢?应该说argv[1]为“qwev”才对呀?
问题三: if(argc != 2)是查看命令行是否有参数吗?为什么不用if(argc < 2)?
------解决思路----------------------
1、是告诉用户该程序的用法,需要带一个filename的参数;
2、因为你输入了qwev和rty两个参数,导致argc!=2;
3、可以用argc<2,但是不严谨,就如你2中输入了多的参数不会报错。
------解决思路----------------------
1.“Usage: %s filename”就是当你输入出错的时候提醒用户正确的输入方法。。
2.argv[1]的确是“qwev”。。但argc == 3了。。在前边就退出了。。
3. if(argc != 2)是判断用户是否按设想的方式输入。。就是test.exe filename这样。。
------解决思路----------------------
VC6:
工程、设置、Debug、U程序变量:填写命令行参数。
VS20XX:
项目、属性、配置属性、调试、命令参数:填写命令行参数。
在这里“命令行参数”的内容你应该填写为一个存在的文件全路径,比如d:\mydir\myinput.txt
------解决思路----------------------
argv[0] 是你的执行程序名和路径
argv[1] 是你执行程序 后面填的第一个参数 以空格分隔
下面这个程序是我几乎复制书上的程序,我想知道
问题一:“Usage: %s filename”是什么意思?
问题二:另外,argv[0]是文件名,argv[1]也是文件名,argv[0]这个文件名可以通过编译黑窗口看到,是以exe为扩展名,但是argv[1]到哪里去看呢?
我在cmd窗口中输入几个参数依然只能看到下面:
E:\>"Microsoft Visual Studio\MyProjects\11\Debug\11.exe " qwev rty
Usage: Microsoft Visual Studio\MyProjects\11\Debug\11.exe filename
应该说除了argv[0]外,我还输入了“qwev”与“rty”呢?应该说argv[1]为“qwev”才对呀?
问题三: if(argc != 2)是查看命令行是否有参数吗?为什么不用if(argc < 2)?
#include "stdafx.h"
#include "stdio.h"
#include "stdlib.h"
int main(int argc, char *argv[])
{
char ch;
FILE *fp;
long count = 0;
if(argc != 2)
{
printf("Usage: %s filename\n", argv[0]);
exit(1);
}
fp = fopen(argv[1], "r");
if(fp == NULL)
{
printf("Can't open %s", argv[1]);
exit(1);
}
ch = getc(fp);
while(ch != EOF)
{
count++;
putc(ch, stdout);
ch = getc(fp);
}
fclose(fp);
printf("File %s has %d characters\n", argv[1], count);
return 0;
}
------解决思路----------------------
1、是告诉用户该程序的用法,需要带一个filename的参数;
2、因为你输入了qwev和rty两个参数,导致argc!=2;
3、可以用argc<2,但是不严谨,就如你2中输入了多的参数不会报错。
------解决思路----------------------
1.“Usage: %s filename”就是当你输入出错的时候提醒用户正确的输入方法。。
2.argv[1]的确是“qwev”。。但argc == 3了。。在前边就退出了。。
3. if(argc != 2)是判断用户是否按设想的方式输入。。就是test.exe filename这样。。
------解决思路----------------------
VC6:
工程、设置、Debug、U程序变量:填写命令行参数。
VS20XX:
项目、属性、配置属性、调试、命令参数:填写命令行参数。
在这里“命令行参数”的内容你应该填写为一个存在的文件全路径,比如d:\mydir\myinput.txt
------解决思路----------------------
argv[0] 是你的执行程序名和路径
argv[1] 是你执行程序 后面填的第一个参数 以空格分隔