- 论坛徽章:
- 0
|
typedef struct ip_info_struct {
int start_ip;
int end_ip;
int province;
int city;
}IP_INFO;
然后定义了个全局变量:
IP_INFO ip_info_data[30000];
通过creat_ip_list来进行赋值:
- int creat_ip_list(FILE *s_fp)
- {
- char tmp[1024];
- int i = 0;
- while (fgets(tmp, 1024, s_fp) != NULL) {
- sscanf(tmp, "%d %d %d %d", &(ip_info_data[i].start_ip),
- &(ip_info_data[i].end_ip),
- &(ip_info_data[i].province),
- &(ip_info_data[i].city));
- printf("%d %d %d %d\n", ip_info_data[i].start_ip,
- ip_info_data[i].end_ip,
- ip_info_data[i].province,
- ip_info_data[i].city);
- i++;
- }
- fclose(s_fp);
- return 1;
- }
复制代码
这段代码在文件内容很小的时候, 可以正常工作, 但是文件比较大, 也就是结构数组比较大得时候,
sscanf(tmp, "%d %d %d %d", &(ip_info_data.start_ip),
&(ip_info_data.end_ip),
&(ip_info_data.province),
&(ip_info_data.city));
就回出现赋值错误问题, 不得其解, 请大家帮忙看一下, thx |
|