Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
529 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Petit probleme (apres compilation)

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Petit probleme (apres compilation)

n°634339
ombreee
Posté le 07-02-2004 à 09:04:42  profilanswer
 

Voila une fois que je compile un programe ex :
 
 
#include <stdio.h>
 
main()
        {
 
int A, B, somme           ;
 
printf("Entrez le premier chiffre"  )  ;
scanf("%i",A)                           ;
 
printf("Entrez le deuxieme chiffre"  ) ;
scanf("%i",B)                           ;
 
 somme = A + B                           ;
 
 printf(" la somme du resultat est de  %i ",somme)   ;
 
 
 
         }
 
 
Au moment ou je tape la variable A et j'apuie sur "entree" pour valide j'ai un message d'erreur de winXP et il ferme l aplication  
:/
 
je voit pas quoi faire :/

mood
Publicité
Posté le 07-02-2004 à 09:04:42  profilanswer
 

n°634342
black_lord
Truth speaks from peacefulness
Posté le 07-02-2004 à 09:07:29  profilanswer
 

scanf("%i",A)  
 
pour les entiers c'est %d et pas %i
 
PS : utilise les balise cpp pour la lisbilité

n°634343
Taz
bisounours-codeur
Posté le 07-02-2004 à 09:10:29  profilanswer
 

black_lord a écrit :

scanf("%i",A)  
 
pour les entiers c'est %d et pas %i
 
PS : utilise les balise cpp pour la lisbilité

ouais c'est ça va te recoucher black_lord
 
bon le seul truc, c'est que :
- t'as pas oublié l'histoire du & pour le scanf ?
- quand tu fais un printf qui se termine pas par un '\n' suivi d'un scanf, entre les 2, rajoute un fflush(stdout); qui force l'affichage et prévient de petits problèmes
edit: - %i est tout aussi valide que %d mais %d est plus communément utilisé


Message édité par Taz le 07-02-2004 à 09:11:18
n°634344
ombreee
Posté le 07-02-2004 à 09:11:10  profilanswer
 

ok merci

n°634346
black_lord
Truth speaks from peacefulness
Posté le 07-02-2004 à 09:12:20  profilanswer
 

%i c'est correct ?? jamais vu ça.
 
Désolé si j'ai dis une connerie.
 
edit : ok, edit croisés


Message édité par black_lord le 07-02-2004 à 09:12:53
n°634347
Taz
bisounours-codeur
Posté le 07-02-2004 à 09:13:57  profilanswer
 

black_lord a écrit :

%i c'est correct ?? jamais vu ça.
 
Désolé si j'ai dis une connerie.

la connerie c'est pas tellement ça, c'est que c'est l'hopital qui se fout de la charité, ombre est un grand débutant (sans doute premier programme) et toi t'es pas capable de lui rappeler comme on se sert de scanf

n°634348
Taz
bisounours-codeur
Posté le 07-02-2004 à 09:15:58  profilanswer
 

ombre > ça marche ?
 
et pour être correct et cohérent
 
main -> int main()
et en fin de main -> return 0;
 
et tout est bien

n°634349
skelter
Posté le 07-02-2004 à 09:17:49  profilanswer
 

il faut le mettre ou pas le return 0 a la fin?

n°634350
black_lord
Truth speaks from peacefulness
Posté le 07-02-2004 à 09:18:45  profilanswer
 

taz a écrit :

la connerie c'est pas tellement ça, c'est que c'est l'hopital qui se fout de la charité, ombre est un grand débutant (sans doute premier programme) et toi t'es pas capable de lui rappeler comme on se sert de scanf


 
c'est clair que j'ai pas fait assez attention, surtout parce que le %i m'a interpellé en fait en que j'ai pas cherché plus loin.

n°634488
Taz
bisounours-codeur
Posté le 07-02-2004 à 15:02:15  profilanswer
 

skelter a écrit :

il faut le mettre ou pas le return 0 a la fin?  

en ANSI oui

mood
Publicité
Posté le 07-02-2004 à 15:02:15  profilanswer
 

n°634500
ombreee
Posté le 07-02-2004 à 15:16:13  profilanswer
 

J'ai encor un autre petit probleme ^^  
 
le probleme vien du fait que une fois que je tape les 2 variables  
 
le programme se ferme comme si la tache etait termine ( pas d erreurs ecrits nul part)
 
:/  
y a pas un moyen de laisser la fenetre en attente ou autre solution pour qu'elle se ferme pas tout de suite ?
 
#include <stdio.h>
 
main()
        {
/*declaration variable (entier) */
int A, B, somme                                   ;
 
 
printf("Entrez le premier chiffre : "  )             ;
scanf("%i",&A)                                     ;
 
printf("Entrez le deuxieme chiffre : "  )            ;
scanf("%i",&B)                                     ;
 
          somme = A + B                           ;
                         ;
 
printf(" la somme du resultat est de  %i et de %i : %i ",A,B,somme) ;
 
         }
 


Message édité par ombreee le 07-02-2004 à 15:17:40
n°634509
jagstang
Pa Capona ಠ_ಠ
Posté le 07-02-2004 à 15:25:52  profilanswer
 

fait un getchar() ou exécute ton programme dans une invite de commande DOS

n°634534
ombreee
Posté le 07-02-2004 à 15:55:33  profilanswer
 

bin c'est deja executer sous dos :/  
 
un autre exemple ou tout marche sauf // final
/*Test de nombres de Jrs function / */
 
// ------------------
 
#include <stdio.h>
 
int main()
 
    {
// declaration variable
  int nb_jours, nb_semaines ;
 
// entrez de variable
  printf("entrez un nombre de jours : " )     ;
  scanf("%d",&nb_jours)     ;
 
// instruction
 
nb_semaines = nb_jours / 7         ;
 
if (nb_jours < 7 )
   return main()            ;
// final
 
  printf("il y a %d semaines dans %d jours",nb_semaines,nb_jours) ;
 
     }

n°634555
xav14
Posté le 07-02-2004 à 16:14:27  profilanswer
 

mets ta ligne aveant le return
et mets "retun 0" plutot parce que la ça appelle ton prog en boucle :/
et utilises les balis [ cpp ] [ /cpp ]


Message édité par xav14 le 07-02-2004 à 16:14:52
n°634573
jagstang
Pa Capona ಠ_ಠ
Posté le 07-02-2004 à 16:32:20  profilanswer
 

tu veux faire quoi exactement ?
 
int totaljours = 154 ;
int joursrestant = totaljours % 7 ;
int nbresemaines = totaljours / 7 ;
 

n°634584
ombreee
Posté le 07-02-2004 à 16:38:49  profilanswer
 

tu veux faire quoi exactement ?
 
bin que //final : reste affiche parcque quand je rentre le nombre de jours le programe se ferme automatiquement !  
 
les balise cpp se mettents ou ??  

n°634643
black_lord
Truth speaks from peacefulness
Posté le 07-02-2004 à 19:11:13  profilanswer
 

les balises cpp se mettent autour de ton code

n°634646
Taz
bisounours-codeur
Posté le 07-02-2004 à 19:15:15  profilanswer
 

rappeler main, c'est laid, très laid

n°634672
skelter
Posté le 07-02-2004 à 19:43:17  profilanswer
 

ombreee a écrit :

le probleme vien du fait que une fois que je tape les 2 variables  
 
le programme se ferme comme si la tache etait termine


 
mais c'est pourant le cas d'apres le source

n°634675
ombreee
Posté le 07-02-2004 à 19:55:29  profilanswer
 

Oui mais moi j'aimerai pouvoir arreter ca si quelqun pouvait me donner un exemple de programme  
 
variable A (float ou int ect... )
avec une constente B = (un nombre quelquonque 1,2,3 ...)
resultat = a + b
et une phrase de fin du genre : a + b = resultat
et que l aplique ne se ferme pas sans meme que je puisse regarder le resultat ..?
??

n°634679
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:00:11  profilanswer
 

ben tu lance l'application dans une fenetre dos comme tu devrais déjà le faire

n°634680
skelter
Posté le 07-02-2004 à 20:01:02  profilanswer
 

un peu plus haut on a dit getchar(), a la fin du prog

n°634682
ombreee
Posté le 07-02-2004 à 20:02:51  profilanswer
 

Justement ca ne change rien :/

n°634683
skelter
Posté le 07-02-2004 à 20:03:32  profilanswer
 

quel os?

n°634684
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:03:41  profilanswer
 

skelter a écrit :

un peu plus haut on a dit getchar(), a la fin du prog

normal, y a un '\n' qui traine

n°634685
skelter
Posté le 07-02-2004 à 20:05:50  profilanswer
 

fflush(stdout) avant, c'est ca qu'il faut faire?

n°634686
ombreee
Posté le 07-02-2004 à 20:06:07  profilanswer
 

oui mais meme si j enleve le saut de ligne pareil :/

n°634687
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:06:58  profilanswer
 

skelter a écrit :

fflush(stdout) avant, c'est ca qu'il faut faire?

non

n°634688
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:07:23  profilanswer
 

ombreee a écrit :

oui mais meme si j enleve le saut de ligne pareil :/

tu m'a pas compris. écoute, lance ton programme à la main dans une console

n°634691
skelter
Posté le 07-02-2004 à 20:08:39  profilanswer
 

faut faire quoi?

n°634695
bonzefou
Posté le 07-02-2004 à 20:13:36  profilanswer
 

>ombree: les gens qui maitrisent oublie parfois qu ils ont aussi commence. Pour avoir une reponse claire et complete il est indispensable que tu exposes bien clairement ton concept ton probleme et l aide que tu attends de la part des gens du forum
 
sinon
pour que ton programme ne se ferme il faut qu il continue a s executer
met donc ton calcul dans un while
exemple
 

Code :
  1. #include <stdio.h>
  2. main()
  3.        {
  4. int A, B, somme           ;
  5. int fin=0;
  6. while (fin==0) 
  7. {
  8.   printf("Entrez le premier chiffre"  )  ;
  9.   scanf("%i",A)                           ;
  10.   printf("Entrez le deuxieme chiffre"  ) ;
  11.   scanf("%i",B)                           ;
  12.   somme = A + B                           ;
  13.   printf(" la somme du resultat est de  %i ",somme)   ;
  14.   printf("Voulez vous continuez?: Y or N" );
  15.   scanf(%i,&A); //le prog attend et tu peux lire
  16.   if (strcmp(A,'N')  //pas sur de la syntaxe
  17.      fin=1;
  18. }
  19. }


 
voila
tu vois l idee?
 


---------------
*<8OD
n°634699
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:20:46  profilanswer
 

non, spa bon. la bonne façon,c 'est de faire
 
un  
 
while(fgets(ligne, sizeof ligne, stdin) && strcmp(ligne, 'bye\n'))
 
 
et ensuite travailler avec sscanf

n°634702
ombreee
Posté le 07-02-2004 à 20:24:58  profilanswer
 

bonzefou  
 
merci enfaite il faut finir le programe sur une insruction non effectuer OK  
 
mais y a un truc que je ne comprend pas trops ? quelle est la diferance entre while est if ???

n°634705
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:26:49  profilanswer
 

ueh la soltuion de bonze ne marchera jamais, enplus de faire partir le programme dans une boucle infinie, le fera planter

n°634708
bonzefou
Posté le 07-02-2004 à 20:33:03  profilanswer
 

pour terminer
soit tu fais comme TAZ et tu tappes bye et [entree}
soit tu reponds a une question precise
soit tu mets un temps d attente a la fin pour avoir le temps de lire et apres ca se ferme tout seul
 
je ne vois pas d autres solutions desole
 
if: c une condition (si en francais) teste une fois
while: ca veut dire faire ce qui est entre {} tant que la condition est vrai (ce qui est entre () )
la condition est testee a chaque passage  
 
voila
 
je te conseille la soluce de TAZ  :jap:


Message édité par bonzefou le 07-02-2004 à 20:34:24

---------------
*<8OD
n°634709
ombreee
Posté le 07-02-2004 à 20:33:54  profilanswer
 

Oui le programe part dans une boucle mais avec if je peut la casser

n°634710
bonzefou
Posté le 07-02-2004 à 20:36:23  profilanswer
 

taz a écrit :

ueh la soltuion de bonze ne marchera jamais, enplus de faire partir le programme dans une boucle infinie, le fera planter


 
??
je suis pas doue mais la j aurais besoin de tes lumieres STP
je voulais simplement proposer une soluce simple pour qqun qui debute


---------------
*<8OD
n°634712
skelter
Posté le 07-02-2004 à 20:40:36  profilanswer
 

deja if (strcmp(A,'N') A est un int, et tu test si A est different de 'N' et non si a est egal a 'N'
et si A etait un caracter tu devrait faire if (!strcmp(&A,'N'))

n°634714
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:44:10  profilanswer
 

Code :
  1. #include <stdio.h> 
  2. #include <string.h>
  3. int main() 
  4.    
  5.   int A, B, somme; 
  6.   char buffer[128];
  7.    
  8.   while(fgets(buffer, sizeof buffer, stdin) && strcmp(buffer, "bye\n" ))
  9.     {
  10.       if(sscanf(buffer, "%d %d", &A, &B) == 2)
  11. {
  12.   somme = A + B;
  13.      
  14.   printf("la somme du resultat est de  %i\n", somme); 
  15. }
  16.     }
  17.   return 0;
  18. }

n°634715
Taz
bisounours-codeur
Posté le 07-02-2004 à 20:45:14  profilanswer
 

skelter a écrit :

deja if (strcmp(A,'N') A est un int, et tu test si A est different de 'N' et non si a est egal a 'N'
et si A etait un caracter tu devrait faire if (!strcmp(&A,'N'))

vous deux là bonz et skelter, vous êtes de très mauvais conseil, alors passer votre chemin, ou contentez vous d'écouter

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Petit probleme (apres compilation)

 

Sujets relatifs
problème d'antislash à la création d'un fichier via un fichier phpProgramation d'un petit jeu en python
problème de compilation(scite)problème avec les library VBa access 2000
Problème de maths[VBS] WshShell - Problème d'initialisation des var. d'environment
Probleme de recuperation de valeur[XSL] problème de variable dans un pattern de apply-templates
[PHP] jpgraph et free , problème (à moitié résolu ! )[Q-Basic] petit probleme dans la compilation :(
Plus de sujets relatifs à : Petit probleme (apres compilation)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR