2015-01-07 3 views
-1

파일의 데이터 입력과 관련된 문제가 있습니다. 나는 키를 누를 때 끝나는 배열을 만들지 만 문제는 0 인덱스의 문자가 파일에없는 반면 나머지 인덱스는 거기에 있다는 것입니다. 즉, 파일에 쓰는 동안 배열의 첫 번째 문자가 누락되어 파일에 없습니다.파일에 데이터를 쓸 때 첫 번째 문자가 손실

char CNIC[10000]; 
std::fstream file1; 

cout<<"Enter CNIC's >>>>>>>>>>> "<<endl; 
file1.open("Nadra database.txt",std::fstream::in | std::fstream::out | std::fstream::app); 
if(!file1) 
{ 
    cout<<"File was not open"; 
} 
else 
{ 
    for(int i=0;i<11;i++) 
    { 
     char ch = getche(); 
     if((int)ch==13) 
     { 
      cout<<"Press Enter key to close data entry "<<endl; 
      break; 
     } 
     else 
     { 
      for(int i=0;i<11;i++) 
      { 
       char character = getche(); 
       if((int)character==13) 
       { 
         break; 
       } 
       else 
       { 
        CNIC[i]=character; 
        file1<<CNIC[i]; 
       } 
      } 
      file1<<endl; 
     } 
} 

} 
system("pause"); 
+0

문자를 숫자와 비교하는 대신 문자 리터럴과 비교하십시오. 예를 들어,'if (character == '\ r')'. –

+0

바깥 고리가 왜 존재하는지 잘 모르겠습니다. 이 코드가 무엇을하기로되어 있는지 조금 더 명확하게 설명 할 수 있습니까? – mbgda

+1

왜'cin' 대신'getche'을 사용하고 있습니까? –

답변

2

를 첫 번째 else 절의 시작 부분에 채널로 작업을 수행하지 않는 다음과 같이

내 코드입니다. 당신은 당신의 내부 루프 에서처럼 파일에 그것을 써야한다. 또한, 내 대신 j를 사용하도록 내부 루프를 변경해야합니다 ... 중첩 루프에 대해 동일한 임시를 사용하지 마십시오.

관련 문제