Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema System con concatenazione stringhe.
Forum - C/C++ - Problema System con concatenazione stringhe.

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 21:55
Venerdì, 03/07/2009
Ciao, sono da poco alle prese con il C++ ed ho il seguente problema.

Analizzando questo codice 1:

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     printf("Insert the host or IP:\n");
  10.     char a;
  11.     scanf("%d", &a);
  12.     system("ping -t -l 1000.000 " + a);
  13.     system("PAUSE");
  14.     return EXIT_SUCCESS;
  15. }



e questo codice 2:

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <stdio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     system("ping -t -l 1000.000 google.it");
  10.     system("PAUSE");
  11.     return EXIT_SUCCESS;
  12. }




Allora, io voglio eseguire un comando dos, con agganciato ad esso la stringa inserita dall' utente (se analizzate il codice 1 si può capire cosa voglio fare)
Solo che nel codice 1, durante l' esecuzione quando arrivo al comando System, mi dice nella console:

La sintassi del nome del file o della directory non è corretta.

Cosa che non succede con il codice 2 visto che non chiede la stringa all' utente ma esegue tranquillamente il comando?

Perchè e come posso risolverlo?

Ultima modifica effettuata da pinguino il 03/07/2009 alle 21:58
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:03
Venerdì, 03/07/2009
A parte il fatto che hai usato un singolo char e non un array di char (come dovrebbe essere in C), se programmi in C++ e' ovvio usare le stringhe del C++ (che ti consiglio di studiare) e l'I/O del C++ ... quindi

Testo quotato


#include <iostream>
#include <string>

using namespace std;

int main(int argc, char *argv[])
{
    cout << "Insert the host or IP:" << endl;
    
    string a;
    cin >> a;
    a = "ping -t -l 1000.000 " + a;
    
    system(a.c_str());
    
    system("PAUSE");
    return EXIT_SUCCESS;
}



- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 22:07
Venerdì, 03/07/2009
Il linguaggio che sto usando è C++ però si possono inserire stringhe di C anche in questo...

Ultima modifica effettuata da pinguino il 03/07/2009 alle 22:13
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:11
Venerdì, 03/07/2009
Testo quotato

Postato originariamente da pinguino:

Il linguaggio che sto usando è C++ però si possono inserire stringhe di C anche in questo...



Sì ... ma se si usa il C++ e' normale utilizzare le caratteristiche del C++ e non quelle del C ...

A cosa serve usare iostream se non utilizzi cin e cout ? E cosi' via ?

In caso contrario, utilizza il C e posta nel forum di C ....


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
pinguino (Ex-Member)
Pro


Messaggi: 172
Iscritto: 26/12/2007

Segnala al moderatore
Postato alle 22:13
Venerdì, 03/07/2009
Comunque questa cosa mi ha fatto capire i vantaggi che si hanno utilizzando codice C++ invece che C...

E' che l' unico libro che ho a disposizione tratta di C ed ho preso spunto da li, al + presto ne comprerò uno sul C++...

Ultima modifica effettuata da pinguino il 03/07/2009 alle 22:14
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:15
Venerdì, 03/07/2009
Testo quotato

Postato originariamente da pinguino:

Comunque questa cosa mi ha fatto capire i vantaggi che si hanno utilizzando codice C++ invece che C...



Beh ... ci saranno dei motivi per cui si chiama C++ ... no?

E ovviamente, non sono solo quelli, ma ben altri ...

Bisogna studiarli ed utilizzarli, altrimenti si continua a programmare in C e non in C++ ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2763
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:36
Domenica, 05/07/2009

ebbravo il nostro pinguino, s'è fatto aiutare a creare un ping flooder, e tutti gli rispondono
:cheer: :cheer: :cheer: :cheer: :cheer: :cheer:


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 10:42
Domenica, 05/07/2009
Testo quotato

Postato originariamente da HeDo:


ebbravo il nostro pinguino, s'è fatto aiutare a creare un ping flooder, e tutti gli rispondono
:cheer: :cheer: :cheer: :cheer: :cheer: :cheer:



Hedo ... forse ti sfugge che sta usando il ping del DOS e quindi non sta "creando" proprio nulla ...

Altra cosa e' se avesse fatto un programma apposito, cosa che mi avrebbe sicuramente fatto evitare di rispondere ...


- Se le mie risposte non vi soddisfano, ignoratele, altrimenti un "grazie" e' molto gradito ...

"Dai un pesce (programma) a un uomo e lo nutrirai per un giorno. Insegnagli a pescare (programmare) e lo nutrirai per tutta la vita." (niente pappa pronta)
PM Quote
Avatar
gigisoft (Member)
Guru


Messaggi: 695
Iscritto: 11/10/2008

Segnala al moderatore
Postato alle 11:48
Lunedì, 06/07/2009
Scusate, al di la della preferenza tra stringhe C e C++, io vedo anche che nel codice c'e' un %d che dovrebbe stare per decimal...
quello corretto non dovrebbe essere %s ( ossia string )?

Ciao. :k:

Luigi


Le cose si fanno per bene o non si fanno affatto
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo