请问在C++中,怎样运用argv argc来读取一个txt文件

2024-05-21

1. 请问在C++中,怎样运用argv argc来读取一个txt文件

argv是命令行参数,需要将程序编译后,在DOS方式下,加参数运行

请问在C++中,怎样运用argv argc来读取一个txt文件

2. c++中int main(int argc, char *argv[])怎么使用?

argv[] 第一个元素是程序名 ,其余元素就是你依次传入的参数,
你可以像这样 ifstream in(argv[1]) ; 使用 ,总之正常字符串用法。
dos下这样调用
 路径\程序名 路径\input1.txt  路径\input2.txt
也可以使用相对路径,如果你的 exe 文件与 txt 文件 在同一目录 ,你可以先进入这个目录,就不必加路径了。
比如说你的程序叫 a.exe ,位于 D:\Debug 内 ,input1.txt 和input2.txt 、output.txt 位于 D:\ 内 ,那么进入命令行后你可以先输入 D:
进入 D 盘 ,然后输入
debug\a.exe input1.txt input2.txt output.txt 
运行后 argv[1] = "input1.txt" ,argv[2] =  "input2.txt" ,...
inStream1.open(argv[1]);
 inStream2.open(argv[2]);
 outStream.open(argv[3]);
类似这样用就行。

3. int main(int argc, char*argv[])是什么意思?什么时候用?请举个例子,谢谢

这是C/C++的一重要函数,叫主函数,执行函数的时候用。
无论程序多复杂,代码中必须有这么一个函数,也只能有一个这样的函数,程序执行时就是从这个函数进入的。
例子:
int   main(int   argc,   char*   argv[])  
{  
int   i;  
for   (i   =   0;   i<argc;   i++)  
cout<<argv[i]<<endl;  
cin>>i;  
return   0;  
}  
执行时敲入  
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE   aaaa   bbb   ccc   ddd  
输出如下:  
F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE  
aaaa  
bbb  
ccc  
ddd  

扩展资料:区别
1、argc是命令行总的参数个数,argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数。
2、char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数。
例如:
int main(int argc, char* argv[])
{
int i;
for (i=0;i<argc;i++)
cout<<argv[i]<<endl;//输入数组到argv[i]中
cin>>i;                 //输出数组argv[i]
return   0;
}
比如你输入:
test   a.c   b.c   t.c
输出如下:
test
a.c
b.c
t.c
则
argc   =   4
argv[0]   =   "test"
argv[1]   =   "a.c"
argv[2]   =   "b.c"
argv[3]   =   "t.c"

int main(int argc, char*argv[])是什么意思?什么时候用?请举个例子,谢谢

4. 有关C++程序里面 int main(int argc,char** argv)应用的问题 回答者比较有了解OPENCV的更好

argc 是命令行位置参数个数
argv[i],  i=0,1,2,3,...argc-1   是 命令行参数 内容(字符串形式)。
 
例如命令行:
yhgz.exe video1.avi 30
argc 等于 3, 因为有3 个参数( 3 个 字符串)
位置参数0,  即 argv[0] 是 可执行文件名:字符串 "yhgz.exe"
位置参数1,  argv[1] 是 字符串 "video1.avi"
位置参数2, argv[2] 是 字符串 "30"
-----------
程序里 if(argc>1) { ..}  满足argc>1,表示你命令行至少有2个以上参数。 
位置参数1,  argv[1] 是 Video 文件名,
cap.open(string(argv[1]));  就是打开 命令行 写的 “video1.avi"
 
你的程序里没用到 位置参数2, argv[2] ,如果想用也可以的,例如,想把它作为整数来用:
int kk;
if (argc >=3 ) sscanf(argv[2],"%d",&kk);   // 字符串转整型 得 kk=30
if(waitKey(kk) >= 0) break;
-----------
如果命令行变:
yhgz.exe video2.avi 28
则程序里 打开 video2.avi ,kk=28;  等待键 waitKey(kk) 就是 waitKey(28)

5. C++主函数main带参数的用法,详细点最好

int main(int argc,char **argv)
里面的argc是参数个数,
**argv 是参数列表.
注意,这里的参数个数等不是让你来传递的,是c程序最开始的部分调用main函数时传递给main()函数的.
比如你的测试程序是test.exe,代码里面就是这个int main(int argc,char **argv)
那么你执行的时候就要在命令行模式下执行..
我还是给你写个例子吧 
例子如下:
#include 
#include 
int main(int argc, char *agrv[])
{
 printf("test main()\n");
 if (3 == argc)
 {
  printf("argc = 3, agrv[0] = %s\n", agrv[0]);
 }
 else
 {
  printf("argc = %d\n", argc);
 }
 system("pause");
}
上述代码只是随便测试一下,让你知道怎么调用带参数的main
你在vc中编译一下,我这里生成的是ss.exe.
调用的时候要在命令行下,如图.
此时,看我输入的东西.
第一个参数是ss.exe, 切记,这就是第一个参数.
后面的how是第二个,
are是第三个,
参数之间用空格分隔.
这样明白了.吧
不明白发信给我.

C++主函数main带参数的用法,详细点最好

6. 用C++编一个猜数字的游戏。最好用Visual C++6.0,并给出运行结果

#include #include #include int main(int argc, char * argv[]){    srand((unsigned)time(NULL));    int a = rand()%100;    a+=1;    int b,c;    c = 0;    while (c  a)		printf("The number is bigger than it suppose to.\n");	   else		printf("The number is smaller than it suppose to.\n");	   c++;	}	if (c == 10)	{	   printf("You used 10 times, please try again!\n");	   break;	}    }    return EXIT_SUCCESS;}

7. C++ 中语句“int &a=b;”的意思?

int &b=a;在定义b的时候前面的符号& 就表示b是a的一个引用,对引用变量的赋值等操作相当于对变量本身的操作。所以你对b赋值 b=a+14其实相当于a=a+14操作,引用又称为别名,相当于一个人两个名字。所以b是15。
1、C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
2、C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

C++ 中语句“int &a=b;”的意思?

8. C++的argc和argv的问题 编译成功但是为什么双击运行报错 在cmd下却可以正常运行代码如下

这是由于你直接运行时,传入的参数只有一个,所以指针错误,访问了野指针。


修改后:

#include
int main(int argc, char *argv[]) 
{
    char *u = argv[1], *p = argv[2];
    int i;
    if(argc<2)// 这里判断一下就好了。

        return 0;
    for(i=1;i<argc;i++)
        printf("%s\n",argv[i]);
    printf("获取第1个参数是%s\n",u);
    printf("获取第2个参数是%s\n",p);
    return 0; 
}