error C2144: 语法错误:“void”的前面应有“)” vs2010 c++ 60

#include<winsock2.h>#include<windows.h>#include<time.h>#include<iostream>#pragmacomme... #include <winsock2.h>#include <windows.h>#include <time.h>#include <iostream>#pragma comment(lib,"ws2_32.lib")//将协议编号转换成协议名char* id2name(u_char id);//Main functionint main(int argc, char* argv[]){ using namespace std;//初始化 winsock DLL WSADATA wsData; if(WSAStartup(MAKEWORD(2,2), &wsData)!=NULL){cout<<"WSAStartup failed!"<<endl;exit(-1);} //建立 raw socketSOCKET sock;if((sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP))==INVALID_SOCKET){cout<<"Unable to create a valid socket!"<<endl;exit(-1);}//获取本机 IP 地址char hostName[128];gethostname(hostName,128);hostent *pHostIP;pHostIP = gethostbyname(hostName);//填充 sockaddr_in 结构体sockaddr_in localAddr;localAddr.sin_family = AF_INET;localAddr.sin_port = NULL;localAddr.sin_addr = *(in_addr*)pHostIP->h_addr;//将套接字绑定到本地网卡if(bind(sock,(sockaddr*)&localAddr,sizeof(struct sockaddr)) ==SOCKET_ERROR){cout<<"Binding failed!"<<endl;exit(-1);}//将 socket 设置为混杂模式(必须先绑定, 才能设置工作模式)const DWORD SIO_RCVALL = _WSAIOW(IOC_VENDOR,1);DWORD dwBufferLen[10];DWORD dwBufferInLen=1;DWORD dwBytesReturned=0;if(WSAIoctl(sock,SIO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen),&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL) ==SOCKET_ERROR){cout<<"Failed to set options of the socket!"<<endl;exit(-1);}//创建接收缓冲区const int BUFFER_SIZE = 65535;char buffer[BUFFER_SIZE];time_t begin = time(NULL);cout<<"Listening......"<<endl;//打印结果cout<<"源地址"<<"\t\t"<<"目的地址"<<"\t"<<"协议类型"<<endl;while(true){//&buffer 的类型是 char (*)[65535], 而 buffer 的类型是 char* ; 尽管它们俩的值相等!int size = recv(sock,buffer,BUFFER_SIZE,0);if(size>0){ char* pbf = buffer;u_int srcIP = *(u_int*)(pbf+12);u_int dstIP = *(u_int*)(pbf+16);u_char protocol = *(u_char*)(pbf+9);cout<<srcIP<<'\t'<<dstIP<<'\t'<<id2name(protocol)<<endl;}}//释放 DLLWSACleanup(void);return 0;} //definition of id2name()char* id2name(u_char id){switch(id){ case 1:return "ICMP";case 2:return "IGMP";case 4:return "IP in IP";case 6:return "TCP";case 8:return "EGP";case 17:return "UDP";case 41:return "IPv6";case 46:return "RSVP";case 89:return "OSPF";default:return "unknown";}} 展开
 我来答
DoramiHe
2018-05-07 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59543
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
主函数名是main(),不是mian().你打错了,人家不认识这个单词,所以就说前面少个:
还有声明函数后面要加分号;
主函数只能有一个,我无语了。
#include "stdafx.h"
#include "iostream"
using namespace std;
void main()
{
int a=5, b;

a=a+1;
b=3*a+a*a-8;

cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
system ( "pause" );

}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
轻闲又靓丽灬松柏B
2023-04-03
知道答主
回答量:15
采纳率:0%
帮助的人:3394
展开全部
c语言不允许中间定义变量,只能在前面定义变量。
c++可以的。
你看看文件名是.c还是.cpp ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式