문자 배열 (문자 배열 [MAX_ROW] [MAX_COL])에 문자의 텍스트 파일을 읽으려고하는데 텍스트 파일에 문자 배열보다 적은 행과 열이 있습니다. 이것은 텍스트 파일 내에있는 물질 물질을 지나쳐 읽는 문제를 일으 킵니다. 나는 다음과 같은 방법을 사용하여 읽을 때이 문제로 실행 :object.get()을 사용하여 텍스트 (2D 배열에 더 많은 행과 열이 있음)보다 큰 매개 변수가있는 2D 배열로 텍스트를 읽으려면 어떻게해야합니까?
ifstream whiteboard; //ifstream object for reading from a file.
whiteboard.open(board_name.c_str());
for(int i = 0; i < MAXROW; i++){ //naive read for canvas, not considering the /n characters or the size of the image.txt
for(int j = 0; j < MAXCOL; j++){ //for this to store the print properly it must be the exact size of the image dimensions
canvas[i][j] = whiteboard.get();
if(whiteboard.get() == '/n'){
return;
}
else if(whiteboard.get() != '/n'){
canvas[i][j] = whiteboard.get();
}
}
}
whiteboard.close();
위 단지 '/ n'은 문자가 지점으로 2 차원 배열을 통해 실행하도록되어 코드. 따라서 어떤 크기의 배열로도 들어갈 수 있습니다. 개행 문자는 텍스트 파일의 각 텍스트 줄 끝에 입력 키 스트로크 형태로 나타납니다. 파일로 읽기는 줄 바꿈을 읽을 때 중지됩니다. 그러나이 올바르게 구현하는 데 문제가 있습니다. 누구든지이 사실을 더 분명하게 볼 수있는 힌트가 있습니까? 고마워요!
편집 :
입력 파일
xxxxxxxxxxxxxx
x x
x x
x x
x x
x x
xxxxxxxxxxxxxx
내가 문자 배열의 해당 값에 (그 안에 포함 된 자사의 ''모든 문자와 함께) 위의 상자 입력 기대하고있다. 마지막 x (오른쪽 하단)을 읽은 후 x의 가장 오른쪽 열을 읽은 후에 읽음을 멈추고 싶습니다. 내 문제는 여기에 내 텍스트 상자의 크기보다 큰 배열을 가지고 오는 것을 볼 수 있습니다. 문자 배열을 텍스트 상자와 동일한 크기로 동일하게 처리하여이 문제를 해결할 수 있다고 생각하지만 비교적 큰 크기의 파일을 읽을 수 있도록 충분히 큰 상수를 유지하려고합니다.
''/ n'' -> ''\ n'' –
줄 바꿈을 읽었을 때 파일 읽기를 중단 하시겠습니까? 아마도 아주 작은 샘플 입력 파일을 제공하면 문제를 설명하는 데 도움이됩니다. – Julian