vendredi 14 février 2020

How to print a message only once in a loop

I am using for loops combined with if statements to read integers from a text file into a two-dimensional array.

This is my code:

for (int i = 0; i < MAX_ROWS;i++) {
        for (int j = 0; j < MAX_COLUMNS; j++) {
            inFile >> ArrB[i][j];
            if (ArrB[i][j] == -1) {
                bad = true;
                cout << "The array does not have enough integers" << endl;
                break;
            }
            else {
                if (ArrB[i][j] < 1) {
                    invalidnum = true;
                }
            }

            if (invalidnum = true) {
                cout << *(*(ArrB + i) + j) << " ";
                cout << "There is/are negative number(s) or zero(s) in the array imported from your text file." << endl;

            }
        }
    }

This code will read in the first 6 integers (max_row * max_column) from a text file into ArrB.

If -1 exists in the first 6 integers, it will exit the loop and print out "The array does not have enough integers".

If there is no -1 in the first 6 integers, then it will check all 6 integers to see if there are any other negative numbers or zero.

If there are negative numbers or zero, I want it to still print out the array, then print out the error message (There is/are negative number(s) or zero(s) in the array imported from your text file) ONLY ONCE.

For example, this is my text file. As you can see, there is no -1 in the first 6 numbers, but there is a -7.

enter image description here

So, ideally, the result should be something like:

2 4 5 6 9 -7

There is/are negative number(s) or zero(s) in the array imported from your text file

But this is what I am getting if I run my code above:

enter image description here

-------------------------------------UPDATE--------------------------------------

If I change if (invalidnum = true) to if (invalidnum == true)

It will only print the error message onc, but now, it's not printing out the whole array...

enter image description here

Any comments or hints would be appreciated!

Aucun commentaire:

Enregistrer un commentaire