2014-12-07 97 views
0

我想用C语言读取文件!获取输入特定格式在c

文件的格式是这样的: (IP地址,IP地址,成本) 例如:

(127.0.0.1,128.1.11.12,12) 
(127.0.1.2,128.0.1.12,12) 
(127.0.3.4,128.4.0.12,12) 

和等

我有以下的代码,但不幸的是这代码是不是加工!问题是我的所有行都进入了dest_ip变量,其余的变量将为每行都为空!

有人可以帮助我吗? 感谢

//open the fp and etc 
char * source_ip; 
char * dest_ip; 
int cost; 
int counter = my_ips_size; 
printf("I am about to read\n"); 
while (fscanf(fp,"(%s,%s,%d)",dest_ip,source_ip,&cost) != EOF) { //do what ever 
+0

您是否忘记了输入行中的逗号? – usr2564301 2014-12-07 01:29:41

+0

对不起我的坏!现在代码应该看起来很好! – click 2014-12-07 01:31:48

+0

user3121023:您的代码正在获取dest_ip,但对于source_ip和代价它仍然为空! – click 2014-12-07 01:46:26

回答

0

这是在评论中Chux解决方案,这是工作完美!!!!!

考虑char dest_ip [16]; char source_ip [16]; if(fscanf(fp,“(%15 [0-9。],%15 [0-9。],%d)”,dest_ip,source_ip,& cost)== 3)....这将输入限制为15个字符,并且不会像“%[^,]”那样在不寻常的'\ 0'中扫描