작은 문제가 있습니다. 파일에서 읽으려고하고 C++에서 2 차원 배열로 읽은 데이터를 출력합니다. .txt 파일을 만들고 코드를 수정했지만 문제가 무엇인지 알 수 없습니다.파일에서 2 차원 배열을 읽는 C++
#include <iostream>
#include <fstream>
// this is for file handleing
using namespace std;
int Sudoku[9][9];
int main()
{
ifstream fp("sudoku.txt");
// this is for reading and opening existing file sudoku.txt
for(int row = 0; row < 9; row++){
for(int column = 0; column < 9; column++){
fp >> Sudoku[row][column];
// from fp we read the characters
}
}
for(int row = 0; row < 9; row++){
for(int column = 0; column < 9; column++){
cout << Sudoku[row][column] << " ";
}
cout << endl;
}
fp.close();
return 0;
내 텍스트 파일은 다음과 같습니다 :
6 4 0 0 0 0 8 0 1
5 0 0 7 0 0 0 2 0
2 7 0 4 9 0 0 0 0
0 3 6 5 1 8 0 9 0
0 0 0 3 0 2 0 0 0
0 5 0 9 6 7 1 4 0
0 0 0 0 7 4 0 8 6
0 8 0 0 0 9 0 0 2
7 0 1 0 0 0 0 5 9
내 첫 번째 질문 : 이전 버전에서, 내 배열은 메인 함수 내에서 정의 된
내 코드는 다음과 같다. 나는 항상 내 파일의 내용 대신 휴지통 출력을 가지고있다. 나는이 요소를 이해하지 못한다 : 요소에 저장된 값이 틀리게 나오지 않도록 내 주요 함수 외부에 Sudoku
배열을 정의해야 하는가?
두 번째 질문 : 현재 코드의 출력 결과는 제로입니다. 파일에서 읽은 요소를 다시 찾을 것으로 예상했습니다. 나는 이것도 이해하지 못한다. 내가 도대체 뭘 잘못하고있는 겁니까? 나는 대답을 찾으려고 노력했지만 스도쿠 해결사의이 부분 만 쓰려고하고 있는데 막혔다.
이러한 문제를 해결하는 올바른 도구는 디버거입니다. 스택 오버플로를 묻기 전에 코드를 단계별로 실행해야합니다. 자세한 도움말은 [작은 프로그램 디버깅 방법 (Eric Lippert 작성)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)을 참조하십시오. 문제를 재현하는 [최소, 완료 및 확인 가능] (http://stackoverflow.com/help/mcve) 예제와 함께 해당 질문을 \ [편집]해야합니다. 디버거. –
질문 옆에 파일과 같은 코드를 읽는 것이 좋습니다. http://www.topbug.net/blog/2013/01/10/load-a-matrix-from-an-ascii-format- file/ – xuhdev
투표를 다시 열어보기 전에 OP로 "[comment] (http://stackoverflow.com/questions/39457808/c-reading-2d-array-from-file?noredirect=1#comment66237324_39457954) 고맙습니다. 문제가 발생했습니다. 조금 피곤해서 텍스트 파일 이름을 잘못 입력했습니다. "라고 말하면서 아무런 해를 끼치 지 않았지만 닫히는 것이 좋습니다. –