c语言读取文件中的内容赋值给相应变量,文件中内容如下,共5行: 源ip:1.1.1.1 源端口:1111 目的ip:1.1.1.2 目的端口:2222 协议:tcp
时间: 2024-09-20 13:11:29 浏览: 20
在C语言中,你可以使用`fscanf`函数从文件中逐行读取并分配给相应的变量。假设你有一个结构体来存储这些信息,例如:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char source_ip[INET_ADDRSTRLEN]; // 源IP
int source_port; // 源端口
char destination_ip[INET_ADDRSTRLEN]; // 目标IP
int destination_port; // 目标端口
char protocol[4]; // 协议 (这里假设总是4个字符)
} NetworkInfo;
void read_from_file(const char *filename, NetworkInfo *info) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
perror("Failed to open file");
return;
}
char line[100];
while (fgets(line, sizeof(line), file)) { // 读取每行
if (sscanf(line, "%[^:]: %d", info->source_ip, &info->source_port) == 2) {
sscanf(fgets(line, sizeof(line), file), "%[^:]: %d", info->destination_ip, &info->destination_port);
fgets(line, sizeof(line), file); // 跳过换行符
sscanf(line, "%s", info->protocol);
break; // 如果读到"协议:"这行就停止
}
}
fclose(file);
}
int main() {
NetworkInfo network_data;
read_from_file("example.txt", &network_data);
printf("源IP:%s\n", network_data.source_ip);
printf("源端口:%d\n", network_data.source_port);
printf("目标IP:%s\n", network_data.destination_ip);
printf("目标端口:%d\n", network_data.destination_port);
printf("协议:%s\n", network_data.protocol);
return 0;
}
```