Winskc编程主要涉及以下几个方面:
输入输出
使用`printf`函数进行输出。
使用`scanf`函数进行输入。
示例代码:
```c
include
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
printf("你输入的整数是:%d\n", num);
return 0;
}
```
变量与数据类型
支持整数、浮点数、字符等数据类型。
使用关键字进行声明和定义。
示例代码:
```c
int num = 10; // 声明一个整数变量并初始化为10
float pi = 3.14; // 声明一个浮点数变量并初始化为3.14
char ch = 'A'; // 声明一个字符变量并初始化为'A'
```
控制语句
支持`if`、`while`、`for`等控制语句来实现条件判断和循环。
示例代码:
```c
int num = 10;
if (num > 0) {
printf("这是一个正数\n");
} else if (num < 0) {
printf("这是一个负数\n");
} else {
printf("这是零\n");
}
int i;
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}
int j = 0;
while (j < 10) {
printf("%d\n", j);
j++;
}
```
Winsock编程
在Windows 32平台上的Winsock编程需要经过以下基本步骤:
定义变量。
获得Winsock版本。
加载Winsock库。
初始化。
创建套接字。
设置套接字。
关闭套接字。
卸载Winsock库。
示例代码:
```c
include
include
pragma comment(lib, "ws2_32.lib")
int main() {
WSADATA wsaData;
if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) {
printf("WSAStartup failed\n");
return 1;
}
SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (s == INVALID_SOCKET) {
printf("socket failed\n");
WSACleanup();
return 1;
}
sockaddr_in serverAddr;
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = INADDR_ANY;
serverAddr.sin_port = htons(8080);
if (bind(s, (SOCKADDR *)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) {
printf("bind failed\n");
closesocket(s);
WSACleanup();
return 1;
}
if (listen(s, 5) == SOCKET_ERROR) {
printf("listen failed\n");
closesocket(s);
WSACleanup();
return 1;
}
// Accept connection
SOCKET client = accept(s, NULL, NULL);
if (client == INVALID_SOCKET) {
printf("accept failed\n");
closesocket(s);
WSACleanup();
return 1;
}
// Send and receive data
char buffer;
int bytesReceived = recv(client, buffer, 1024, 0);
if (bytesReceived == SOCKET_ERROR) {
printf("recv failed\n");
} else {
buffer[bytesReceived] = '\0';
printf("Received: %s\n", buffer);
}
// Close the client socket
closesocket(client);
// Close the server socket
closesocket(s);
// Uninitialize Winsock
WSACleanup();
return 0;
}
```
建议