Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C++] Compilazione programma simulazione di Enigma

    Buongiorno, da poco programmo in c++ e stavo cercando di ricreare una sorta di macchina Enigma, tuttavia il programma non parte. Ho provato a compilarlo usando l'IDE dev c++, ma, dopo che la compilazione veniva completata correttamente, il programma crashava. Ho provato dunque ad eseguire la compilazione su Visual Studio 2017, ma, in questo il compilatore non riusciva nemmeno a trovare il file. Potreste spiegarmi come risolvere per favore? Ecco il codice che ho scritto

    #include <stdafx.h>
    #include <iostream>
    #include <string.h>
    #include <time.h>
    #include <stdlib.h>
    #include <fstream>
    using namespace std;
    int main() {
    int n, i, l, q, j = 0, k = 0, p;
    char s[n + 1], c, chiave[27], alf[27], a = 'a';
    cout << "Inserire la capienza massima della stringa\n";
    cin >> n;
    cout << "Inserire il carattere di fine corsa\n";
    cin >> c;
    cout << "Caricare la stringa\n";
    cin.getline(s, n + 1, c);
    srand(time(NULL));
    for (i = 0; i<26; i++) {
    q = i;
    i = 0;
    chiave[q] = rand() % 'z' + 'a';
    while (i<q) {
    if (chiave[i] == chiave[q]) do {
    chiave[q] = rand() % 'z' + 'a';
    p = i;
    i = 0;
    while (i<q) {
    if (chiave[i] == chiave[q]) k = 1;
    i++;
    }
    i = p;
    } while (k != 0);


    i++;
    }
    i = q;
    }
    cout << "Ecco la chiave di lettura\n";
    for (i = 0; i<26; i++)
    cout << chiave[i] << "\n";


    for (i = 0; i<27; i++) {
    alf[i] = a;
    a++;
    cout << alf[i] << "\n";
    }


    l = strlen(s);
    cout << "Ecco la stringa criptata\n";
    for (i = 1; i<l; i++) {
    do {
    if (s[i] == alf[j]) {
    s[i] = chiave[j];
    break;
    }
    else j++;
    } while (s[i] != alf[j]);
    j = 0;
    }
    cout << s << "\n";
    system("pause");


    }

    Grazie in anticipo per l'aiuto

  2. #2
    P.S. La chiave generata randomicamente dal programma deve contenere elementi tutti diversi tra loro

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Scrivere in questo modo

    int n, i, l, q, j = 0, k = 0, p;
    char s[n + 1], c, chiave[27], alf[27], a = 'a';

    non ha senso perché, in questo momento, il valore di n non è definito.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.