在c中获取具有特定格式的输入

时间:2014-12-07 01:27:45

标签: c readfile

我正在尝试用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

1 个答案:

答案 0 :(得分: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'喜欢"%[^,]"确实