Reputation:
Background:
I'm attempting to read through a 2d array and find values that coincide with row numbers and column numbers.
Question:
How do I read values off a file and acquire, for example, 1 and 4 vs. 14?
Here's what I have so far...
All constructive criticism is welcome.
int arrayOfNum[5][5] = {
{34,21,32,41,25},
{14,42,43,14,31},
{54,45,52,42,23},
{33,15,51,31,35},
{21,52,33,13,23}};
ofstream arrayFile;
arrayFile.open("arrays.txt");
if (arrayFile.is_open()) {
cout << "File opened successfully..." << endl;
}
for (int i = 0; i <= 4; i++) {
arrayFile << endl;
for (int j = 0; j <= 4; j++) {
arrayFile << arrayOfNum[j][i] << ' ';
}
}
Upvotes: 0
Views: 647
Reputation: 242
You are writing rows in columns as you wrote "arrayOfNum[j][i]", but I'm writing the code for correct direction. You can change the condition in following code but it's working perfect if you write "arrayOfNum[i][j]" while outputting in 'array.txt'
ifstream arrayFile;
arrayFile.open("arrays.txt");
for (int i = 0; i <= 4; i++)
{
for (int j = 0; j <= 4; j++)
{
arrayFile >> arrayOfNum[i][j];
cout<<arrayOfNum[i][j]<<" ";
if(i+1 == arrayOfNum[i][j] / 10 && j+1 == arrayOfNum[i][j] % 10)
{
cout<<"\n Matched: "<<arrayOfNum[i][j]<<endl;
}
}
cout<<endl;
}
And yes it will work for only 2 digit numbers, if you want for N digit numbers then I can do it for you too! :)
Upvotes: 1