Реализовал шифрование с применением магического квадрата, но не получается выполнить одно условие. Если остаются пустые клетки, то их нужно заполнить произвольным символом, например, "." (точкой). Как это можно реализовать?
Реализация:
#include<iostream>
#include <conio.h>
#include<string>
#include <windows.h>
using namespace std;
int main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//setlocale(LC_ALL, "Russian");
const int size = 4;
const int magic[size][size] = {{ 4, 14, 15, 1 },
{ 9, 7, 6, 12 },
{ 5, 11, 10, 8 },
{ 16, 2, 3, 13 }};
char cipher
[size][size];
string message;
cout << "Введите текст: ";
cin >> message;
// обнуление массива под результат
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++) {
cipher[i][j] = '\0';
}
for (int k = 0; k < message.length(); k++) {
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++) {
if (magic[i][j] == (k + 1)) {
cipher[i][j] = message[k];
goto next;
}
}
next:
;
}
cout << "Зашифрованный текст: ";
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++) {
if (0 != cipher[i][j])
cout << cipher[i][j];
}
cout << endl;
_getch();
return 0;
}