2012-10-25 2 views
-2

.txt라는 이름의 .txt 파일이 있습니다. 여기에는 다음과 같은 세 개의 시퀀스가 ​​포함됩니다.C++의 텍스트 파일에서 사용할 수있는 시퀀스 집합 읽기

1 -1 -1 1 1 1
1 1 1 -1 -1 -1 1 -1
1 -1 1 1

루프 읽을 I 중첩을 사용하고 세 가지 반복에 대한 위의 파일에서 사용할 수있는 시퀀스 위의 프로그램에 표시된

int dd6[6]; 

ifstream f6; 


for(int i=0;i<3;i++){ 

    f6.open("C:\\one.TXT"); 

     for(int i7=0;i7<3;i7++){ 

       for(int i8=0;i8<6;i8++){ 
        f6>>dd6[i8]; 
        cout<<dd6[i8]<<" "; 
       } 
       cout<<"\n"; 
     } 
     f6.close(); 
     cout<<"\n"; 

} 

로를 다음과 같이, 나는

다음과 같이 one.txt에서 사용할 수있는 3 개 시퀀스가 ​​세 번 읽어야하는 6,

1 -1 -1 1 1 1
1 1 1 -1 -1 -1 1 -1
1 -1 1 1

.......... ..............

1 -1 -1 1 1 1
1 1 1 -1 -1 -1 1 -1
1 -1 1 1

.........................

1 -1 -1 1 1 1
1 1 1 -1 -1 -1
1 -1 1 -1 1 1

단, I는 상기 프로그램을 사용할 때 여기서 두 번째 및 세 번째 트리플렛의 마지막 순서로 나타나는, 다음과 같이 I 항상 출력을 얻을 (1 1 -1 -1 1 1) 세 번.

1 1 1 -1 -1 -1 1 -1
1 -1 1 1
1 1 -1 -1 1 1

......... ...........

1 1 -1 -1 1 1
1 1 -1 -1 1 1
1 1 -1 -1 1 1

,745,151 5,

.....................

1 1 -1 -1 1 1
1 1 -1 -1 1 1
1 1 -1 -1 1 1

내 코드에서 어떤 문제가 있었을 수 있습니까? 도움을 주시면 감사하겠습니다.

감사

+3

동일한 것을 세 번 읽는 이유는 무엇입니까? 왜 그것을 한 번 읽고 3 번 출력하지 않는가? –

+0

게시 한 네 가지 질문 중 _any_ 답변을 수락하지 않았습니다. –

+0

@ R.Martinho Fernandes :: 이것은 실제 코드가 아닙니다. 나는 실제로 2384729237 시퀀스를 포함하는 텍스트 파일에서 34 길이의 시퀀스를 읽고 있습니다. 나는 동일한 수의 시퀀스를 가진 세 개의 다른 텍스트 파일을 가지고있다. 행렬을 생성하기 위해 모든 시퀀스간에 사용 가능한 모든 가능성을 고려해야합니다. 따라서 나는 2384729237 * 2384729237 * 2384729237 * 2384729237 가지의 가능성을 가져야한다. – cuser

답변

1

나는이 문제입니다 확실하지 않다, 대신 폐쇄하고 파일을 여는 그냥

f6.seekg(0, ios::beg); 

편집과 파일의 시작 부분에 도착 포인터를 보낼 수 : 답변 됨

여기에 올바른 코드가 나와 있습니다. 스트림이 파일의 끝에 도달하면 오류 플래그를 설정하고 그 이후부터는 판독 값이 잘못되었습니다. 다시 읽으려면 스트림을 지워야합니다. 매번 스트림을 다시 열지 않고 프로그램 버전을 작성했지만 파일을 열고 닫은 경우에도 작동합니다.

int dd6[6]; 

ifstream f6; 
f6.open("C:\\one.TXT"); 

for(int i=0;i<3;i++){ 

    //f6.open("C:\\one.TXT"); 

     for(int i7=0;i7<3;i7++){ 
       for(int i8=0;i8<6;i8++){ 

        f6>>dd6[i8]; 
        cout<<dd6[i8]<<" "; 
       } 
       cout<<"\n"; 
     } 
     f6.clear(); //clear the error flags! 
     f6.seekg(0, ios::beg); 
     cout<<"\n"; 

} 
+0

고맙습니다. – cuser

관련 문제