 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Fr@d Guest
|
Posted: Tue Apr 11, 2006 7:06 pm Post subject: Question de novice (moins d'un jour !!) |
|
|
Bonjours,
J'ai décidé de me mettre à la programmation C++, juste comme un loisir,
donc pas de trucs trop complexes, juste pour m'amuser un peu. J'ai déja
touché un peu au Basic et au Pascal.
J'ai pris un bouquin "C++ pour les Nuls", et je me lance, dès le 1er
exemple de code, j'ai un soucis.
En effet, le livre se base sur Windows avec Dev-c++, hors, je suis sous
Linux avec Anjuta ! et la ligne de code qui me pose soucis c'est la
suivante.
system ("PAUSE");
En fait, si je compile, je n'ai aucune erreur, par contre lorsque je
lance le programme compilé, j'ai le message suivant
sh: PAUSE: command not found
Est-ce que ça vient de Linux (je pense) ou du compilateur ? si oui, y a
t'il une commande équivalente sous Linux ?
Merci
--
Mail envoyé avec ThunderBird 1.5
Sous SuSE Linux Pro 10 |
|
| Back to top |
|
 |
Fred Guest
|
Posted: Tue Apr 11, 2006 7:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Fr@d wrote:
| Quote: | Bonjours,
J'ai décidé de me mettre à la programmation C++, juste comme un loisir,
donc pas de trucs trop complexes, juste pour m'amuser un peu. J'ai déja
touché un peu au Basic et au Pascal.
J'ai pris un bouquin "C++ pour les Nuls", et je me lance, dès le 1er
exemple de code, j'ai un soucis.
En effet, le livre se base sur Windows avec Dev-c++, hors, je suis sous
Linux avec Anjuta ! et la ligne de code qui me pose soucis c'est la
suivante.
system ("PAUSE");
En fait, si je compile, je n'ai aucune erreur, par contre lorsque je
lance le programme compilé, j'ai le message suivant
sh: PAUSE: command not found
Est-ce que ça vient de Linux (je pense) ou du compilateur ? si oui, y a
t'il une commande équivalente sous Linux ?
Merci
|
Bonjour,
En effet, ça vient de Linux. Cette ligne appelle la commande "PAUSE" de
Windows, afin vraisemblablement de laisser le temps à l'utilisateur de
voir ce qui se passe dans la console. Sous Linux, je ne pense pas que
cette ligne soit nécessaire. Je ne connais pas Ajunta, mais j'imagine
qu'il doit afficher la console à l'exécution.
Fred |
|
| Back to top |
|
 |
Fr@d Guest
|
Posted: Tue Apr 11, 2006 7:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Merci pour cette réponse rapide, en effet, cette commande ne me sert pas
à grand chose, vu que j'ai la console ouverte.
Ce qui m'étonnais, c'est que ça ne provoque pas d'erreur la compilation
et que ça provoque une erreur a l'exécution.
--
Mail envoyé avec ThunderBird 1.5
Sous SuSE Linux Pro 10 |
|
| Back to top |
|
 |
Sylvain Guest
|
Posted: Tue Apr 11, 2006 8:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Fr@d wrote on 11/04/2006 20:40:
bonsoir,
| Quote: | le livre se base sur Windows avec Dev-c++, hors, je suis sous
Linux avec Anjuta ! et la ligne de code qui me pose soucis c'est la
suivante.
system ("PAUSE");
En fait, si je compile, je n'ai aucune erreur
|
c'est heureux!
system(const char* command) est défini dans stdlib dans 30 ans, donc ça
doit compiler partout.
| Quote: | par contre lorsque je lance le
programme compilé, j'ai le message suivant
sh: PAUSE: command not found
|
system fait executer par le shell (l'interpréteur de commande), la
commande passé en argument; votre prog. est donc correct, mais la
commande PAUSE est inconnu de votre shell courant (sh); un system("ls");
devrait (faute d'être transcendant) vous permettre de dépasser la
déception du premier code qui marche pas ;)
nota: si votre but est d'exécuter par code des commandes du shell,
prenez conseil sur fr.comp.os.unix de la syntaxe de ces commandes.
Sylvain. |
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Tue Apr 11, 2006 8:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
"Fr@d" <toto (AT) toto (DOT) fr> writes:
| Quote: | Merci pour cette réponse rapide, en effet, cette commande ne me sert pas à
grand chose, vu que j'ai la console ouverte.
Ce qui m'étonnais, c'est que ça ne provoque pas d'erreur la compilation et
que ça provoque une erreur a l'exécution.
|
system est une fonction dont l'effet est d'executer la chaine que tu
lui passes comme si tu l'avais taper a la ligne de commande.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org |
|
| Back to top |
|
 |
Delf Guest
|
Posted: Tue Apr 11, 2006 9:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Fred wrote:
| Quote: | En effet, ça vient de Linux. Cette ligne appelle la commande "PAUSE"
de Windows, afin vraisemblablement de laisser le temps à l'utilisateur
de voir ce qui se passe dans la console. Sous Linux, je ne pense pas que
cette ligne soit nécessaire. Je ne connais pas Ajunta, mais j'imagine
qu'il doit afficher la console à l'exécution.
|
cin.ignore() ?
Pas sûr...
--
Delf
Do not use this email in Cc!
L'homme n'est que poussière. La femme est aspirateur. |
|
| Back to top |
|
 |
TjB Guest
|
Posted: Tue Apr 11, 2006 9:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Sinon, pour attendre un peu, si nécessaire, il y a la fonction
sleep(N), N en secondes.
Au début du programme, faire
#include <unistd.h>
et dans le programme, pour attendre 5 secondes par exemple :
sleep(5);
T. |
|
| Back to top |
|
 |
Fr@d Guest
|
Posted: Wed Apr 12, 2006 1:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
TjB a écrit :
| Quote: | Sinon, pour attendre un peu, si nécessaire, il y a la fonction
sleep(N), N en secondes.
Au début du programme, faire
#include <unistd.h
et dans le programme, pour attendre 5 secondes par exemple :
sleep(5);
T.
|
Bonjour,
Merci, la fonction SLEEP fonctionne très bien.
@+, Fred.
--
Mail envoyé avec ThunderBird 1.5
Sous SuSE Linux Pro 10 |
|
| Back to top |
|
 |
Fr@d Guest
|
Posted: Wed Apr 12, 2006 1:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Delf a écrit :
| Quote: | Fred wrote:
En effet, ça vient de Linux. Cette ligne appelle la commande
"PAUSE" de Windows, afin vraisemblablement de laisser le temps à
l'utilisateur de voir ce qui se passe dans la console. Sous Linux, je
ne pense pas que cette ligne soit nécessaire. Je ne connais pas
Ajunta, mais j'imagine qu'il doit afficher la console à l'exécution.
cin.ignore() ?
Pas sûr...
|
Bonjour,
En fait la commande cin.ignore(); ne fait as grand chose , ça ne génère
pas d'erreur à la compilation, mais ça ne fait rien.
Merci
--
Mail envoyé avec ThunderBird 1.5
Sous SuSE Linux Pro 10 |
|
| Back to top |
|
 |
Stephane Wirtel Guest
|
Posted: Wed Apr 12, 2006 4:06 pm Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Voici ce que tu attends au lieu du PAUSE :p
#include <iostream>
#include <stdexcept>
int main( int argc, char **argv ) {
try {
// affiche le message
std::cout << "Appuyez sur ENTER" << std::endl;
// attend l'appui d'une touche
std::cin.get();
return 0;
}
catch( const std::exception & ex ) {
std::cerr << "Exception: " << ex.what() << std::endl;
}
catch( ... ) {
std::cerr << "Exception inconnue" << std::endl;
}
return 1;
} |
|
| Back to top |
|
 |
kanze Guest
|
Posted: Tue Apr 18, 2006 8:06 am Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Fr@d wrote:
| Quote: | TjB a écrit :
Sinon, pour attendre un peu, si nécessaire, il y a la fonction
sleep(N), N en secondes.
Au début du programme, faire
#include <unistd.h
et dans le programme, pour attendre 5 secondes par exemple :
sleep(5);
Merci, la fonction SLEEP fonctionne très bien.
|
Mais attention -- elle n'est pas réelement portable non plus. (Je
crois
qu'il existe une fonction sleep sous Windows aussi. Mais je doute
qu'elle soit déclarée dans <unistd.h>.)
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 |
|
| Back to top |
|
 |
kanze Guest
|
Posted: Tue Apr 18, 2006 8:06 am Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
Fr@d wrote:
| Quote: | Delf a écrit :
Fred wrote:
En effet, ça vient de Linux. Cette ligne appelle la commande
"PAUSE" de Windows, afin vraisemblablement de laisser le temps
à l'utilisateur de voir ce qui se passe dans la console. Sous
Linux, je ne pense pas que cette ligne soit nécessaire. Je ne
connais pas Ajunta, mais j'imagine qu'il doit afficher la
console à l'exécution.
cin.ignore() ?
En fait la commande cin.ignore(); ne fait as grand chose , ça ne
génère pas d'erreur à la compilation, mais ça ne fait rien.
|
Ça doit lire un caractère de cin. Typiquement, cin est bufferisé par
le
système, de façon à ce que tu ne reçois rien tant qu'on n'a pas
entré un
saut de ligne. Au moins que cin soit rédirigé d'un fichier.
La forme classique pour ce genre de chose, c'est :
cin.ignore( INT_MAX, '\n' ) ;
C-à-d lire juqu'à INT_MAX caractères, ou un '\n'. (C-à-d dans la
pratique, lire jusqu'au prochain '\n'.)
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34 |
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Tue Apr 18, 2006 8:06 am Post subject: Re: Question de novice (moins d'un jour !!) |
|
|
On 18 Apr 2006 00:55:11 -0700, "kanze" <kanze@gabi-soft.fr>:
| Quote: | et dans le programme, pour attendre 5 secondes par exemple :
sleep(5);
(Je crois qu'il existe une fonction sleep sous Windows aussi.
|
Une fonction sleep(), ça dépend du compilateur.
L'API Win32 propose une fonction Sleep(), avec un argument en
millisecondes. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|