2011-04-26 52 views
0

我有一個從文件中讀取整數的程序,如下所示。讀取兩個連續的整數,然後讀取它的權重

value1和value2取自用戶。

路徑文件包含路徑的權重,可以說重量路徑1〜3中是4和5到6爲3,則路徑文件將是:

path 

1 3 4 

5 6 1 

3 2 1 

的代碼是:

fp=fopen("path","r"); 

while(fscanf(fp,"%d",i)==1) 
{ 
    if(((j==value1)&&(i==value2))||((j==value2)&&(i==value1))) 
    weight={next value which will be read}; 
} 

我想要的邏輯讀取上述重量

另外,雖然掃描它不應該採取的每一行的第三整數文件。

例如,如果我想要1到3之間的路徑,那麼它不應該掃描第三個coloum中的1或3。

這種懷疑的框架是相當困難的,但我會盡力說清楚你是否有人願意幫助我。

+3

'while'行中的額外分號?你有你的代碼的方式,while循環(1單行)將讀取所有的輸入,如果沒有讀取或轉換錯誤。 – pmg 2011-04-26 11:54:18

+0

抱歉... 沒有分號 – 2011-04-26 13:12:02

回答

1

我不是C語言的專家,但函數fscanf的第三個參數需要內存地址,如果變量i是整數,則需要使用&我好嗎?

http://www.cplusplus.com/reference/clibrary/cstdio/fscanf/

我很抱歉,因爲任何東西。大聲笑 。

+0

+1很好看! @sanketmlad:增加編譯器的警告級別。 – pmg 2011-04-26 13:22:28

+0

事實上,第三個元素是最後一個元素,因此即使我們可以檢測到新行並開始處理前兩個元素,我們的工作已經完成了.....所以即使您知道如何檢測新行,請讓我知道。 – 2011-04-26 13:34:51