C htons或inet_地址数组
我是编程新手 我正在使用FGET读取文件,并已将文件内容放入数组中 文件内容类似于用换行符分隔的地址C htons或inet_地址数组,c,C,我是编程新手 我正在使用FGET读取文件,并已将文件内容放入数组中 文件内容类似于用换行符分隔的地址\n: 192.168.1.0 192.168.1.1 192.168.1.5 192.168.1.7 我正在尝试使用网络函数inet_addr和htons中的数组进行连接 如何将数组用于这样的函数中 一个接一个?我该怎么做 感谢您的帮助。inet\u addr已过时,因为它无法根据返回代码中的错误条件确定255.255.255.255的有效输入。使用inet_aton intead char
\n
:
192.168.1.0
192.168.1.1
192.168.1.5
192.168.1.7
我正在尝试使用网络函数inet_addr和htons中的数组进行连接
如何将数组用于这样的函数中
一个接一个?我该怎么做
感谢您的帮助。inet\u addr已过时,因为它无法根据返回代码中的错误条件确定255.255.255.255的有效输入。使用inet_aton intead
char buffer[81];
struct in_addr ip;
while(fgets(buffer, 80, f)) {
buffer[strlen(buffer) - 1] = 0;
if (1 == inet_aton(buffer, &ip)) {
/* good line */
} else {
/* bad line */
}
}
到目前为止你已经试过什么了?请出示您的实际代码。是的,您必须一次处理一个地址
inet\u addr()
一次只接受一个地址,就像connect()
一样。您试图用地址实现什么?建议在循环中使用strtok()
,1)检查对strtok()的每次调用的返回值,以确保找到新的子字符串。2) 如果找到子字符串,则将该子字符串传递给inet_addr()。读取每一行之后,对strtok()的调用看起来像:char*address;第一次调用的if(address=strtok(inputbuffer,”){inet_addr(address);
,以及下面的调用的if(address=strtok(NULL,”){inet_addr(address);`在我阅读您的问题时,地址不是用换行符分隔的,而是用空格(空格、换行符、制表符等)分隔的@用户3629249,这是由于问题中的格式错误造成的。fgets()
null终止其输出,您不需要手动执行此操作。如果输出尚未以null终止,则使用strlen()
将不起作用。此外,该问题要求您提供有关inet\u addr()
,而不是inet\u aton()的帮助
.fgets使尾随的换行符保持打开状态——该行将其截断。