2014-12-07 47 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'中掃描