2011-05-09 10 views
0

추출 연산자 (>>)를 사용하여 ifstream 객체를 사용하여 텍스트 파일에서 읽으려고하고 있으며 다음 코드를 수행 할 때 전혀 읽지 않습니다!ifstream을 사용하여 텍스트 파일에서 읽기

#include <iostream> 
#include <fstream> 
#include <iomanip> 

void outputLine(int account, const char *const name , double balance) 
     { 
     cout << left << setw(10) << account << setw(13) << name 
      << setw(7) << setprecision(2) << right << balance << endl; 
     } // end function outputLine 


int main() 
{ 
    ofstream outfile("client.txt",ios::out); 
    if (!outfile) 
    { 
     cout << "the file is not opened .. " << endl ; 
     exit(1); 
    } 
    int account; 
    char name[30]; 
    double balance; 
    while (cin >> account >> name >> balance) 
    { 
     outfile << account << ends << name << ends << balance << endl ; 
     cout << "? " ; 
    } 
    outfile.close(); 

    ifstream inFile; 
    inFile.open("client.txt",ios::in); 

    if (!inFile) 
    { 
     cerr << "File could not be opened" << endl; 
     exit(1); 
    } // end if 

    cout << left << setw(10) << "Account" << setw(13) 
     << "Name" << "Balance" << endl << fixed << showpoint; 

    while (inFile >> account >> name >> balance) 
    { 
     outputLine(account, name, balance); 
    } 

    return 0 ; 
} 

이 코드에 오류가 있습니까?

답변

0

여기에 ends 매니퓰레이터는 무엇입니까? 대신 공백을 출력해야한다고 생각합니다. 그리고 이것을 디버깅하는 명백한 방법은 출력 파일을 생성하는 코드를 작성한 다음 텍스트 편집기로 출력을 검사하여 작동하는지 확인하는 것입니다.

+0

'표준 : ends' 문자열 문자 ''의 끝을 삽입하는 마이크로 소프트 고유의 조작이다 \ 0'' 스트림에. 그것은 오래되고 불필요합니다. – 0x499602D2

0

아마도 글을 쓰고 있지 않기 때문에 아마 읽지 않을 것입니다. 당신은 입력을 물었을 때 당신이 콘솔 창에 입력을 지정하지 못했지만, 당신의 형식으로 입력에 넣어하지 않는 경우

후 아무것도 때문에 파일에 기록되지 않습니다

integer string double 
cin<< 것 데이터가 원하는 유형과 일치하지 않으므로 특정 유형을 가져오고 실패하십시오.

1

나는 당신이 위에 언급 한 프로그램이 당신 것이 냐고 의심 스럽다. 나는 파일 처리에 관한 전자 책에서 너와 비슷한 문제를 발견했다. 여기 링크를 제공합니다, 당신이 그것을 참조하고 원하는 경우 프로그램을 수정할 수 있습니다.

file processing.pdf

관련 문제