Oppure

Loading
24/01/12 16:49
lorenzoscarrone
nn so come far funzionzare questo programma qualcuno mi può aiutare? grazie ;)
#include<iostream>
using namespace std;
int main(){
    char* testo[15];
    printf("Benvenuto in un MS-Dos improvvisato \n");
    cin >> testo[15];
    system(testo[15]);
    return main();
}
aaa
24/01/12 16:59
anthony015
non puoi accedere a testo[15] dato che l'array va da 0 a 14...
Ultima modifica effettuata da anthony015 24/01/12 17:18
aaa
24/01/12 17:14
Dovresti provare così:
#include <iostream>
#include <string>

using namespace std;

int main(/*......*/)
{
    string cmd;
    cout << "..................." << endl;
    cin >> cmd;
    system(cmd);
    return 0;
}


Questo dovrebbe funzionare, non lo ho provato.........
24/01/12 17:23
Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)

char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = 'Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........';
comando[1] = 'Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........';
.......
comando[14] = 'Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = 'Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........';
............
comando[14] = 'Tieni conto che se tu avessi anche inizializzato l' array (come avresti dovuto fare)
char comando[15] = "{parsed_message}";

Avresti un array di 15 variabili a 8bit, quindi
comando[0] = '{parsed_message}';
comando[1] = '{parsed_message}';
.......
comando[14] = '{parsed_message}';

eseguendo un cin e ipotizzando che l' utente digiti dir C: otterresti:
comando[0] = 'd';
comando[1] = 'i';
comando[2] = 'r';
comando[3] = ' ';
comando[4] = 'C';
comando[5] = ':';
comando[6] = '{parsed_message}';
............
comando[14] = '{parsed_message}';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........';

quindi tu facendo system(comando[15]); hai passato una variabile ad 8 bit (char) che non esiste! E se anche esistesse (avessi cambiato char comando[15] in char comando[16]) avresti passato un solo carattere. La soluzione più semplice sarabbe mettere system(*comando); Attenzione che nel caso il comando superi i 15 caratteri non funzionerà ugualmente ed è proprio per questo che ti consiglio (e ti ho consigliato) di utilizzare un dato di tipo string........
26/01/12 10:00
char *cmd = "
char *cmd = "{parsed_message}";
cin >> cmd;
system((const char*)cmd);
 

Prova così"; cin >> cmd; system((const char*)cmd);

Prova così