argc argv怎么用啊
#include<iostream>
using namespace std;
int main(int argc,char *argv[])
{
cout<<argc<<endl;
int a;
cin>>a;
int b;
cin>>b;
for(int i=0;i<argc;i++)
cout<<argv[i]<<endl;
return 0;
}
为什么什么程序都是argc都是1 怎么用啊 argc和argv 求例子啊
[解决办法]
命令行下使用,比如一个console的TCP客户端:
#include <stdio.h>
#include <winsock.h>
#pragma comment(lib,"ws2_32")
#define PORT 1111
int main(int argc,char *argv[])
{
SOCKET sockfd;
WSADATA ws;
struct sockaddr_in their_addr;
char Buffer[MAX_PATH];
int num = 0;
if (argc != 2)
{
printf("Usage:client1.exe<IP Address>\n");
return -1;
}
WSAStartup(MAKEWORD(2,2),&ws);
if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == INVALID_SOCKET)
{
return -1;
}
their_addr.sin_family = AF_INET;
their_addr.sin_port = htons(PORT);
their_addr.sin_addr.S_un.S_addr = inet_addr(argv[1]);
if (connect(sockfd,(struct sockaddr*)&their_addr,sizeof(struct sockaddr)) ==SOCKET_ERROR)
{
closesocket(sockfd);
return -1;
}
gets(Buffer);
num = send(sockfd,Buffer,MAX_PATH,0);
closesocket(sockfd);
return 0;
}
使用时候就是 client1.exe 127.0.0.1
这种时候argc就为2。
[解决办法]
有两种方式,一种是编译器有这个选项,另外就要通过命令行方式执行你的程序时传进去的