c语言读取文件中的内容赋值给相应变量,文件中内容: 源ip:1.1.1.1 源端口:1111 目的ip:1.1.1.2 目的端口:2222 协议:tcp
时间: 2024-09-19 11:10:05 浏览: 58
在C语言中,读取文件中的内容并将其赋值给相应的变量,你可以使用`fscanf`函数结合结构体或者动态内存分配来处理这种文本文件。假设我们有一个简单的数据结构来存储这些信息:
```c
#include <stdio.h>
#include <string.h>
typedef struct {
char source_ip[INET_ADDRSTRLEN];
int source_port;
char destination_ip[INET_ADDRSTRLEN];
int destination_port;
char protocol[4]; // 注意TCP一般为4字节,这里假设协议总是4字符长
} NetworkInfo;
void read_from_file(const char *filename, NetworkInfo *info) {
FILE *file = fopen(filename, "r");
if (file == NULL) {
printf("Error opening file: %s\n", filename);
return;
}
char buffer[64]; // 这里假设一行不超过64字节
while (fgets(buffer, sizeof(buffer), file)) {
if (sscanf(buffer, "%[^:]:%d:%[^:]:%d:%s", info->source_ip, &info->source_port,
info->destination_ip, &info->destination_port, info->protocol) == 5) {
break; // 文件一行对应一条记录,遍历到此处就停止
}
}
fclose(file);
}
int main() {
NetworkInfo net_info;
read_from_file("your_file.txt", &net_info);
// 现在 net_info.source_ip、net_info.source_port等已包含文件中的内容
printf("Source IP: %s, Source Port: %d, Destination IP: %s, Destination Port: %d, Protocol: %s\n",
net_info.source_ip, net_info.source_port, net_info.destination_ip, net_info.destination_port, net_info.protocol);
return 0;
}
```