pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
Ciao, sono da poco alle prese con il C++ ed ho il seguente problema.
Analizzando questo codice 1:
Codice sorgente - presumibilmente C++ |
#include <cstdlib> #include <iostream> #include <stdio.h> using namespace std; int main(int argc, char *argv[]) { printf("Insert the host or IP:\n"); char a; scanf("%d", &a); system("ping -t -l 1000.000 " + a); system("PAUSE"); return EXIT_SUCCESS; }
|
e questo codice 2:
Codice sorgente - presumibilmente C++ |
#include <cstdlib> #include <iostream> #include <stdio.h> using namespace std; int main(int argc, char *argv[]) { system("ping -t -l 1000.000 google.it"); system("PAUSE"); return EXIT_SUCCESS; }
|
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 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/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
#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;
}
|
|
|
pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
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 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
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 .... |
|
pinguino (Ex-Member)
Pro
Messaggi: 172
Iscritto: 26/12/2007
|
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 |
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
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++ ... |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
ebbravo il nostro pinguino, s'è fatto aiutare a creare un ping flooder, e tutti gli rispondono
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
|
|
gigisoft (Member)
Guru
Messaggi: 696
Iscritto: 11/10/2008
|
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.
Luigi
|
|