2011-10-09 5 views
-1

에서 문자열의 int 및 복식의 혼합을 읽고 난 .txt 파일과 같이 찾고 있습니다. 파일에서 int 및 double을 읽는 것이 작동하는 것처럼 보이지만 문자열을 읽으면 재미가 시작됩니다.
문자열을 읽은 다음 전체 콘솔에서 충돌을 일으키려고합니다.는 C에서 파일 ++

편집 : "충돌"이란 "응답 없음"유형의 메시지가 표시됨을 의미합니다. 내가 사용하는 코드는 기본적으로 :

ifstream file; 
file.open ("C:\path\file.txt"); 
file >> int1; 

getline(file, string1); 
getline(file, string2); 
file >> int2; 
file >> double1; 
file >> double2; 
file >> double3; 
// .... 

file.close(); 

편집 2 : INT1의 어떻게 든 대신 1의 값은 -858993460입니다.

정말 혼란스러워지고 있어요 ...

편집 3 : 이제 모든 알엇 설정하지만, 파일에 기록 된 값 아니다되고있다. 먼저 INT 먼저 srting 잘하지만 거기에 파일에 좀 더 값은 그들은 내가에 사이클을 실행 유형별로 패턴을 수용하기 때문에 0과 복식이

-92559631349317830000000000000000000000000000000000000000000000 

으로 빨간색 모두로 두 번째 문자열은 빨간색입니다 그 (것)들에게 모든 문제를 얻는 것은 첫번째 읽힌 후에 가치가 다시 빨간색이지 않다이다. 이러한 형태는 동일하게 반복되는 경우

+1

정보 그냥 충돌 '? 그리고 몇몇 코드는 어떨까요? –

+0

"크래시"란 무엇을 의미합니까? 오류 메시지 란 무엇입니까? – jwfriese

+1

@Povylas 이러한 유형이 분류되어 있습니까? (즉 같은 방식으로 반복) –

답변

1

file.open ("C를 \ 경로 \ file.txt 파일을");

\ 문자를

수정

file.open 탈출이다 ("C : \\ 경로 \\ file.txt를을"); 그와 관련된

0

, I 제안 :

ifstream str("MyFile.dat"); 
int counter = 0; 
const int MAX_DATA_CNT = 4; 
const int DOUBLE = 1; 
const int INT = 2; 
.... 

while (!str) 
{ 
    if (++counter == MAX_DATA_CNT) 
     counter = 1; 
    switch(counter) 
    { 
    case DOUBLE: // input double 
     break; 
    case INT: // input int 
     break; 
    .... 
    } 
}