CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Terminal windows

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
maxime34750
maxime34750
Niveau 8
03 avril 2013 à 16:22:08

Salut a tous !
voila je me suis lancé dans la programmation et plus particulierement le langage C.
J'ai fais quelques petits programme, grace a code blocks sur windows 7. Le truc c'est que lorsque je lance un programme il y a écrit " press any key to continue ".
vu que dans mon programme il y a un scanf, je voudrais bien tapper quelque chose , mais des que j'appui sur une touche mon programme quitte.
Selon vous cela viendrait de mon programme ?

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 17:01:37

ah non ca le fait avec tous ! regardez avec tout simplement le hello world ...

  1. include <stdio.h>
  2. include <stdlib.h>

int main()
{
printf("Hello world!\n");
return 0;
}

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 17:17:32

si si , pas de soucis dans l'execution du programme , mais apres je peux rien taper dans la console , par exemple si j'ai un scanf , la logique voudrais que je rentre quelque chose , seulement le fait d'appuyer sur une touche mes fait quitter la console

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 17:34:14

oui mais je lui demande pas de quitter le programme des qu'il a finis , la console m'affiche press any key to continue , donc je vois pas pourquoi si j'appuie sur une touche ca me quitterait la console

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 17:45:16

Et pour le jeu du " c'est plus , c'est moins " pour trouver le bon chiffre , j'ai egalement un soucis. Le programme s'execute , je rentre le chiffre etc , je trouve !
Et des que je trouve , le programme se ferme , alors que tout ca ca me le faisait pas

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 18:18:59

pardon j'avais pas vu ton post. Je comprend pas alors que sur les videos tuto que je regarde (bjornulf sur youtube) en ayant le meme code ca ne marche pas pareil...

aqw01
aqw01
Niveau 4
03 avril 2013 à 19:06:15

Euh system("pause"); c'est spécifique à Windows non ?

Perso j'utilise cin.get(); en C++, après je ne sais pas si ça marche en C :(

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:19:33

d'acc merci WhiteAppleX !
Mais comment faire pour pouvoir entrer une commande dans la console pendant un programme , pour profiter du scanf ?

aqw01
aqw01
Niveau 4
03 avril 2013 à 19:20:06

Un programme en console n'est pas une invite de commande hein.

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:21:27

oui je l'ai bien compris , mais je veux répondre au programme. En fonction de ce que je répond il changera de question , et pour cela j'ai besoin de pouvoir taper quelque chose , et non que le programme se finisse tout seul

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:21:42
  • lorsque j'appuie sur une touche
aqw01
aqw01
Niveau 4
03 avril 2013 à 19:22:42

Donne ton code source :oui:

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:30:06

J'en ai pas spécialement , ca le fait a tous ! regarde meme mon code de hello world le fait ...

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:56:05

je crois que c'etait juste un bug , j'ai redemarré le pc avec le meme code source , je vous le montre quand meme , mais maintenant ca marche :

  1. include <stdio.h>
  2. include <stdlib.h>

int main(void)
{
char lettre;
scanf("%c",&lettre);
switch(lettre){
case 'a' :
case 'e' :
case 'i' :
case 'o' :
case 'u' :
case 'y' : printf("c'est une voyelle\n") ; break ;
default: printf("c'est une consonne\n") ;
}

}

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 19:57:20

mais par contre , je peux taper qu'une seule lettre , apres si j'en retape une autre ca m'éjecte. Faut il remettre un scanf a chaque fois ?

Google_Bot
Google_Bot
Niveau 14
03 avril 2013 à 20:02:40

Quand tu lances ton programme en double-cliquant sur l'exécutable, il s'ouvre, s'exécute, et dès qu'il n'y a plus d'instruction bloquante, il se ferme.
En gros, si à la fin de ton déroulement, il n'y a pas un getchar() (par exemple), la console se fermera "toute seule" et c'est normal.

Par contre, si tu ouvres toi-même un cmd (démarrer>exécuter>cmd), que tu vas dans ton dossier de travail (avec la commande cd , entre autres), et que tu lances ton programme en l'appelant par son nom ("machin.exe"...), tu verras tout le déroulement et la fenêtre ne se "fermera pas" une fois l'exécution terminée: l'invite de commandes réapparaîtra simplement.

C'est pas un bug. Code::Blocks prend l'initiative d'ajouter une instruction "bloquante" à la fin de l'exécution dans la console, mais si tu n'en as pas mis de ton côté, dès que tu utiliseras le programme sans passer par lui, ça refera la même chose.

Le "Press any key to continue", il est inséré par C::B. Tu peux le désactiver dans les propriétés de ton projet, mais je te déconseille de faire ça, pense juste à mettre une instruction bloquante si tu veux voir les derniers messages affichés dans la console par exemple, juste avant le "return 0;" du main().

Google_Bot
Google_Bot
Niveau 14
03 avril 2013 à 20:05:04

« je pe1ux taper qu'une seule lettre , apres si j'en retape une autre ca m'éjecte. »

Relis (BIEN) ton code, c'est exactement ce que tu as demandé à la machine.
Tu te bases sur un tuto particulier pour apprendre ? J'ai l'impression que tu grilles des étapes, ou certains trucs sont pas rentrés correctement (différences entre conditions et boucles, entre autres).

maxime34750
maxime34750
Niveau 8
03 avril 2013 à 20:11:06

je n'ai rien changé pourtant , juste redémarré le pc. Apres oui je debute donc y a des trucs qui sont pas encore tout a fait clair

gre_y_hawk
gre_y_hawk
Niveau 10
04 avril 2013 à 14:45:27

maxime34750 Voir le profil de maxime34750
Posté le 3 avril 2013 à 16:22:08
mais des que j'appui sur une touche mon programme quitte.
Selon vous cela viendrait de mon programme ?

Quand tu fais des programmes consoles il faut ajouter un scanf() avant le return 0 pour que le programme ne quitte pas quand tu le testes.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware