C에서 할당을 위해 코딩을하고 있는데 이상한 문제가 발생했습니다. 나는 TXT 파일에 저장되어있는 다음과 같은 내용이 있습니다fscanf를 잘못 사용 했습니까?
11
1 1 0 1 0 0 0 1 0 0 0
0 1 1 0 1 0 0 0 1 0 0
0 0 1 1 0 1 0 0 0 1 0
0 0 0 1 1 0 1 0 0 0 1
1 0 0 0 1 1 0 1 0 0 0
0 1 0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 1 1 0 1 0
0 0 0 1 0 0 0 1 1 0 1
1 0 0 0 1 0 0 0 1 1 0
0 1 0 0 0 1 0 0 0 1 1
1 0 1 0 0 0 1 0 0 0 1
그것은 0과 단지 정방 행렬이, 그리고 맨 번호 (11)는 행렬의 크기입니다.
0 1 1 0 1 0 0 0 1 0 0
0 0 1 1 0 1 0 0 0 1 0
0 0 0 1 1 0 1 0 0 0 1
1 0 0 0 1 1 0 1 0 0 0
0 1 0 0 0 1 1 0 1 0 0
0 0 1 0 0 0 1 1 0 1 0
0 0 0 1 0 0 0 1 1 0 1
1 0 0 0 1 0 0 0 1 1 0
0 1 0 0 0 1 0 0 0 1 1
1 0 1 0 0 0 1 0 44 0 1606415088
나는 그 마지막 항목이 너무 잘못된 방법 아무 생각이 :
void generateCNF(FILE* f, FILE* g){
int n;
fscanf(f,"%d",&n);
int i,j;
int A[n][n]; // A is where I store my matrix
for(i=1;i<=n;i+=1){
for(j=1;j<=n;j+=1){
fscanf(f,"%d",&A[i][j]);
printf("%d ",A[i][j]); // I print out A while reading into it
}
printf("\n");
}
//...
}
이의 printf가 생성하는 출력은 : 나는 다음과 같은 코드를 사용하여이 파일을 읽습니다. 필자는 텍스트 편집기에서 행렬 파일을 열어 보았는데 완벽하게 잘 보였으므로 fscanf (또는 오히려 그것을 사용함)가 잘못되었다고 생각됩니다.
나를 돕기 위해 필요한 경우 전체 C 파일 (약 90 줄)을 추가 할 수 있지만 불필요하게 게시물을 어지럽히고 싶지는 않습니다.
힌트 : 모든 scanf 함수의 반환 값을 항상 확인하십시오. 그것은 당신에게 어떤 시점에서 두통의 톤을 저장합니다. – hyde
죄송합니다. 제목을 변경했습니다. fscanf는 문서화 된대로 작동합니다. –
@WeatherVane 승인 됨. –