Я использую циклы for в сочетании с операторами if для чтения целых чисел из текстового файла в двумерный массив.
Это мой код:
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;
}
}
}
Этот код будет читать первые 6 целых чисел (max_row * max_column) из текстового файла в ArrB.
Если -1 существует в первых 6 целых числах, он выйдет из l oop и выведет «В массиве недостаточно целых чисел».
Если в -1 нет -1 первые 6 целых чисел, затем он проверит все 6 целых чисел, чтобы увидеть, есть ли другие отрицательные числа или ноль.
Если есть отрицательные числа или ноль, я хочу, чтобы он все еще распечатывал массив, а затем распечатывал сообщение об ошибке (В массиве, импортированном из / есть отрицательные числа или нули) ваш текстовый файл) ТОЛЬКО ОДИН РАЗ.
Например, это мой текстовый файл. Как видите, в первых 6 числах нет -1, но есть -7.
Итак, в идеале, результат должно быть что-то вроде:
2 4 5 6 9 -7
There is/are negative number(s) or zero(s) in the array imported from your text file
Но это то, что я получаю, если я запускаю свой код выше:
- ------------------------------------ОБНОВИТЬ------------- -------------------------
Разобрался, основываясь на комментарии @ZedLepplin
Вот код:
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;
}
}
cout << *(*(ArrB + i) + j) << " ";
}
}
if (invalidnum == true) {
cout << "There is/are negative number(s) or zero(s) in the array imported from your text file." << endl;
}