나는 내가 멀티 어레이 인쇄를 실행하고 경우를 제외하고 int main()
내 프로그램에서 매트릭스를 출력 루프 사용의 버그가
int main() {
int *p1 = findmatrixsize("inputmatrix.txt","A");//A function gets matrix size
cout << p1[0] << endl << p1[1] << endl;
int *p2 = findmatrixsize("inputmatrix.txt","B");
cout << p2[0] << endl << p2[1] << endl;
double **C = normalmultiplication("inputmatrix.txt","A", "B");
cout << C[0][0] << endl;
ofstream fout;
const string s="outputmatrix.txt";
fout.open(s);
for(int i=0;i<p1[0];i++){
for(int j =0;j<p2[1];j++){
fout << C[i][j] << " ";
}
fout<< endl;
}
fout.close();
return 0;
}
모든 일에 테스트하려면 다음 코드를 썼다. 문제는 다음과 같습니다.
인쇄 부분을 주석 처리하면 p1[0],p1[1],p2[0],p2[1],C[i][j]
은 내가 원하는 완벽하고 정확한 결과를 제공합니다.
2. 그러나 일반 루프를 사용하여 인쇄하면 작동하지 않습니다. 그러나, 그러나, 만약에 for 루프에서 p1[0],p2[1]
을 3과 같은 구체적인 숫자 (행렬 차원이 3 일 때)로 변경하면 다시 작동합니다.
3.It이 컴파일되지만 for 루프 인쇄 부분이 txt에 기록되지 않습니다. 표준 인쇄물로 변경했을 때 (단 한 줄뿐만 아니라 전체 방법을 의미 함), 터미널에서도 볼 수 없었습니다. 하지만 위에서 언급했듯이 p [0] p [1]을 3으로 변경하면 작동합니다. 즉, txt 또는 터미널에서 볼 수 있습니다.
이전에는 C++에서 이상한 상황을 만난 적이 없지만, 그래서 누군가가 나를 도울 수 있기를 바랍니다!
참고로 저는 Visual Studio 2010을 컴파일러로 사용합니다.
도움 주셔서 감사합니다.
정확히 작동하지 않는 항목은 무엇입니까? – Borgleader
컴파일되지만 for 루프 인쇄 부분이 txt에 기록되지 않습니다. 표준 인쇄물로 변경하면 (단 한 줄뿐만 아니라 전체 방법을 의미 함) 터미널에서도 볼 수 없습니다. 그러나 위에서 언급했듯이 p [0] p [1]을 3으로 변경하면 작동합니다. 즉 txt 또는 터미널에서 볼 수 있습니다. – Cancan