24 messaggi dal 27 gennaio 2003
Salve, ho un problema di conversione con l'istruzione system.

Questa istruzione infatti, richiede come attributo un const char* mentre io voglio lavorare su stringhe del tipo std::string (per una maggiore flessibilità). Non sono riuscito a fare una conversione esplicita, e non so quindi come risolvere il mio problema.

Qualcuno sa dirmi se ci sono altre istruzioni simili a questa, oppure c'è un modo per far funzionare il casting?
3.122 messaggi dal 16 maggio 2002
Devi usare la sprintf, che, a differenza della printf che stampa a video, stampa su una stringa. Ad esempio:

char s[200], nomedir[50] = "mydirectory";
sprintf(s, "cd %s", nomedir);


In s troverai la stringa che ti occorre per usarla nell'istruzione system (io ho scritto un semplice "cd mydirectory").
Era questo che cercavi?

Modificato da Raynor il 07 marzo 2004 15.48 -

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
24 messaggi dal 27 gennaio 2003
No, forse mi sono spiegato male
Ti copio un esempio del codice che volevo fare

#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[]){
string stringa,IP;
int scelta;
cout<<"IP: ";
cin>>IP;
cout<<"\n\n-->Selezione\n";
cout<<"1:Ping\n";
cout<<"2:Net Send\n";
cin>>scelta;
switch(scelta){
case 1: stringa = "ping " + IP;break;
case 2: {
string messaggio;
cout<<"Inserire il messaggio da spedire";
cin>>messaggio;
stringa = "net send " + IP + " " + messaggio;
}break;
}

system(stringa);
system("pause");
}
L'errore che ottengo è alla istruzione system(stringa)
//Errore 25 cannot convert `std::string' to `const char*' for argument `1' to `int system(const

3.122 messaggi dal 16 maggio 2002
Ah, ho capito. Non ho mai usato il tipo di dati string, ma solo *char.
Prova con i classici array di char utilizzando la sprintf come ti ho detto prima.

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.