이것은 내 첫 번째 게시물입니다. 나는이 C++ 문제에 대해 잠시 동안 노력해 왔으며 어디에도 없었습니다. 어쩌면 너희들이 나를 시작할 수있는 힌트를 줄 수 있을지도 몰라.크기가 알려지지 않은 두 개의 텍스트 파일에서 두 개의 행렬 곱하기
내 프로그램은 각각 하나의 행렬을 포함하는 두 개의 .txt 파일을 읽어야합니다. 그런 다음 그것을 곱하여 다른 .txt 파일로 출력해야합니다. 여기에서 나의 혼란은 .txt 파일이 설치되고 치수를 얻는 방법입니다. 다음은 행렬 1.txt의 예입니다.
#ivalue #jvalue value
1 1 1.0
2 2 1
매트릭스의 크기는 2x2입니다.
이러한 행렬을 곱하기 전에 텍스트 파일에서 i와 j 값을 가져와야합니다. 내가이 일을 발견 한 유일한 방법은 문제는 내가 행의 수를 읽고 두 번째 줄에 도착하는 방법을 몰라
int main()
{
ifstream file("a.txt");
int numcol;
float col;
for(int x=0; x<3;x++)
{
file>>col;
cout<<col;
if(x==1) //grabs the number of columns
numcol=col;
}
cout<<numcol;
}
입니다. 그리고 그 위에 다른 matrices 파일에 대한 정확한 결과를 줄 것이라고는 생각하지 않습니다.
불명확 한 점이 있으면 알려주십시오.
업데이트 고마워요! getline이 올바르게 작동합니다. 하지만 지금은 또 다른 문제가 있습니다. 행렬 B에서이 설정과 같다 :. 내가 프로그램을하자가 다운 어쩌면 더 4 선, (행렬들 치수를 알 수 갈 필요가 알 필요가
#ivalue #jvalue Value
1 1 0.1
1 2 0.2
2 1 0.3
2 2 0.4
내 행렬 B의 예는 2 × 2이지만, 그것은 20x20 일 수 있습니다). while (! file.eof())는 내 프로그램을 루프하여 파일의 끝까지 반복하도록합니다. 나는 곱셈을 위해 동적 배열이 필요하다는 것을 알고 있지만 여기에도 하나가 필요합니까?
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream file("a.txt"); //reads matrix A
while(!file.eof())
{
int temp;
int numcol;
string numrow;
float row;
float col;
for(int x=0; x<3;x++)
{
file>>col;
if(x==1)
{
numcol=col; //number of columns
}
}
string test;
getline(file, test); //next line to get rows
for(int x=0; x<3; x++)
{
file>>test;
if(x==1)
{
numrow=test; //sets number of rows
}
}
cout<<numrow;
cout<<numcol<<endl;
}
ifstream file1("b.txt"); //reads matrix 2
while(!file1.eof())
{
int temp1;
int numcol1;
string numrow1;
float row1;
float col1;
for(int x=0; x<2;x++)
{
file1>>col1;
if(x==1)
numcol1=col1; //sets number of columns
}
string test1;
getline(file1, test1); //In matrix B there are four rows.
getline(file1, test1); //These getlines go down a row.
getline(file1, test1); //Need help here.
for(int x=0; x<2; x++)
{
file1>>test1;
if(x==1)
numrow1=test1;
}
cout<<numrow1;
cout<<numcol1<<endl;
}
}
STL 컨테이너에 익숙합니까? 어떻게 행렬을 메모리에 표현하겠습니까? – Beta