2011-04-26 3 views
0

나는 파일에서 정수를 읽는 프로그램을 가지고있다.두 연속적인 정수와 그 무게를 읽는다.

값 1과 값 2는 사용자로부터 가져옵니다.

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}; 
} 

경로 파일 경로의 중량을 포함하고 경로 파일 것 3 4 5 6 3 경로 (1)의 중량을 말하고 있습니다

나는 그것을 각 줄의 세 번째 정수를 가지고 가면 안된다 파일을 스캔하는 동안 논리는, 위의 무게 또한

을 읽고 싶어.

예를 들어, 1에서 3 사이의 경로를 원한다면 세 번째 coloum에있는 1 또는 3을 스캔하면 안됩니다.

이 의심의 골조는 상당히 어렵지만, 아무도 나를 도우려는 경우 명확하게하려고 노력할 것입니다.

+3

'while'줄에 여분의 세미콜론이 있습니까? 코드를 읽는 방식에 따라, 'while'루프 (1 줄)는 읽기 또는 변환 오류가없는 경우 모든 입력을 읽습니다. – pmg

+0

죄송합니다 ... 세미 콜론이 없습니다 –

답변

1

저는 C 언어의 전문가는 아니지만 함수 fscanf의 세 번째 매개 변수는 메모리 주소를 필요로합니다. 변수 i가 정수인 경우 &을 사용해야합니까?

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

나는 때문에 아무것도 죄송합니다. 롤.

+0

+1 멋지게 발견되었습니다! @sanketmlad : 컴파일러의 경고 수준을 높입니다. – pmg

+0

실제로 세 번째 요소가 마지막 요소이므로 새 줄을 감지하고 처음 두 요소를 처리하기 시작할지라도 작업이 완료됩니다 ..... 따라서 새 줄을 감지하는 방법을 알고 있더라도 알고있다. –

관련 문제