2013-03-25 4 views
0

이것은 지금까지 가지고있는 코드입니다. 입력 파일에서 데이터를 가져옵니다. 이 파일에는 내가 호출하는 각 변수에 필요한 모든 데이터가 있지만 실행하면 하나의 반복 만 얻고 이후에는 루프가 종료됩니다. 파일 끝에 도달 할 때까지 실행해야합니다.C++ io 스트림이있는 루프가 첫 번째 반복 후에 왜 깨지나요?

#include <iostream> 
#include <fstream> 
#include <string> 
#include <cmath> 
using namespace std; 

int main() 
{ 
    ifstream pTemp("PlanetCelsius.dat"); 
    int pNumber, pSize; 
    string pName; 
    double cTemp, fTemp; 

    cout << "Number\t" << "Planet Name\t" << "Diameter\t" << "Celsius\t" << "Fahrenheit" << endl; 

     while (pTemp >> pNumber) 
     { 
      while (pTemp >> pName) 
      { 
       while (pTemp >> pSize) 
       { 
        while (pTemp >> cTemp) 
        { 
         pTemp >> pNumber; 
         cout << pNumber << " "; 
        } 
       pTemp >> pName; 
      cout << pName << " "; 
       } 
     pTemp >> pSize; 
     cout << pSize << " "; 
      } 
    pTemp >> cTemp; 
    fTemp = 9 * (cTemp)/5 + 32; 
    cout << cTemp << " " << fTemp << endl; 
     } 

    system ("PAUSE"); 
     return 0; 
} 
+4

질문에 대해 더 자세한 설명이 포함 된 제목을 찾으실 수 있습니다. 여기에있는 대부분의 사람들 (나 포함됨)이 우리 자신의 실수 나 범프에 대해 질문합니다. – Barranka

+0

cout << "Here"로 디버깅 시작 :) –

+0

사용중인 프로그래밍 언어를 태그에 추가하는 것이 좋습니다. 나는 분명히 그것이 게시물 내부로 이동하여 C + +를 볼 수 있지만, 당신이 더 많은 결과를 얻을 수 있다고 생각하고 그것을 추가하면 빠른 방법. –

답변

1
while (cin.good) 
{ 
    pTemp >> pNumber >> pName >> pSize >> cTemp >> pNumber; 
    cout << pNumber << " " << pName << " " << pSize << " "; 
    fTemp = 9 * (cTemp)/5 + 32; 
    cout << cTemp << " " << fTemp << endl; 

} 
return 0; 

나는 당신의 파일 구조를 볼 수 haven`t,하지만 난이 코드가 작동합니다 gues.

+0

덕분에 나는 그런 식으로 일을 끝내었지만 cin.good 대신에 (pTemp >> pnumber) 사용하고 똑같은 것으로 보인다. 고마워. –

0

당신이하고있는 :

while(there's a number) 
    while(there's a string) 
    while(there's a number) 
    while(there's a number) 
    take first number 
    take first string 
    take first number 
take first number 

을하고 프로그램에서 할 수있는 모든 숫자를 가져 오는 가장 안쪽 루프가 전화 번호 문자열 번호 - 번호 순서 덤비는있다.

첫 번째 while을 두 번째로 확인하면 가장 안쪽의 루프가 이미 첫 번째 문자열까지 모든 숫자를 가져와 종료하기 때문에 숫자를 찾을 수 없습니다.

while()을 사용하는 것이 좋지 않은 경우, spin_eight가 제안한대로 파일 구문 분석을 시도하십시오.

+0

아하 덕분에 나를 많이 도와줍니다. –

관련 문제