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

 


Dernière réponse
Sujet : [C] faire un scanf d'un espace
Taz superbe déterrage, on avait tous arrêté de respirer depuis.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Taz superbe déterrage, on avait tous arrêté de respirer depuis.
laflaf3d Je sais que ça date ce post mais...
si tu fais:

Code :
  1. if (valeur=13)


et bien valeur va valoir 13 et comme ton if test une affectation, il sera toujours vrai  :pfff:  
 
Aussi, pour éviter ce genre de mésaventure j'utilise toujours ce type d'écriture:

Code :
  1. if(13==valeur)


Comme ça, si par erreur tu ne met que un seul '=', ton compilo va brère car tu tentes d'affecter une constante.
Ca évite beaucoup d'erreur...
 
A+

djrom Ahhhh !!
Il ne faut JAMAIS utiliser gets() !!
gets() ne vérifie pas la taille de la chaîne qu'il lui est donnée, et écrit quand même, quite à écraser la mémoire qui est après, ce qui fera inévitablement planter le programme. Il faut utiliser fgets() à la place.
Cette fonction est tellement à banir, que gcc (le compilateur sous Linux) te prévient de ne pas l'utiliser au moment de la compilation !
[SDF]Poire

stipe a écrit a écrit :

:jap: merci , tout va pour le mieux dans le meilleur des mondes!
 
il faut faire if (valeur=13)..............  




2 rien
 :hello:

stipe :jap: merci , tout va pour le mieux dans le meilleur des mondes!
 
il faut faire if (valeur=13)..............
[SDF]Poire

stipe a écrit a écrit :

Merci c vachement sympa...j'ai utilisé getche() ....
 
au fait,tant que j'y suis, comment peut-on retourner à la ligne lorsque l'on tape sur la touche "enter"?
 
peut-ête avec la valeur ASCII que je ne connais pas ;-)
 
if (saisie ='\x???? ')
   printf("\n" );
 
merci d'avance  ;)  




if (saisie ='\n')
   printf("\n" );

ou
if (saisie = 13)
   printf("\n" );

test les 2....

stipe Merci c vachement sympa...j'ai utilisé getche() ....
 
au fait,tant que j'y suis, comment peut-on retourner à la ligne lorsque l'on tape sur la touche "enter"?
 
peut-ête avec la valeur ASCII que je ne connais pas ;-)
 
if (saisie ='\x???? ')
   printf("\n" );
 
merci d'avance  ;)
[SDF]Poire getch
Syntax
 
#include <conio.h>
int getch(void);
 
Description
 
Gets character from keyboard, does not echo to screen.
getch reads a single character directly from the keyboard, without echoing to the screen.
 
Note: Do not use this function for Win32s or Win32 GUI applications.  
 
Return Value
 
getch returns the character read from the keyboard.
 
/* getch example */  
 
#include <conio.h>
#include <stdio.h>
 
int main(void)
{
  int c;
  int extended = 0;
  c = getch();
  if (!c)
    extended = getch();
  if (extended)
    printf("The character is extended\n" );
  else
    printf("The character isn't extended\n" );
 
  return 0;
}
 
Borland C++ 5.0 Programmer's Guide
Marche po sous nunux
stipe voilà une partie de mon p'tit programme
 
do  {
 scanf (" %c",&saisie);
 
 if (saisie!='0')
 {
 nb_car++;
 tab_saisie=(char *)realloc(tab_saisie,nb_car*sizeof (char));
 if (saisie==" " )<= probleme pour dire c un espace
 
        {        
 tab_saisie[nb_car-1]='X';
      printf("coucou" );}
 else tab_saisie[nb_car-1]=saisie;
 }
   }
 
while (tab_saisie[i]!='0');
 
 
for (i=0;i<nb_car;i++)
printf ("%c ",tab_saisie[i]);
free (tab_saisie);
 
le problème étant de traiter caractère par caractère l'entrée clavier sans virer les espaces pour insérer les caractères dans un tableau dynamique qui traitera chaque caractère indépendamment.
une idée sans les "string" STP. Merci
[SDF]Poire /* gets example */
 
#include <stdio.h>
 
int main(void)
{
   char string[80];
 
   printf("Input a string:" );
   gets(string);
   printf("The string input was: %s\n", string);
   return 0;
}
 
Borland C++ 5.0 Programmer's Guide
[SDF]Poire gets
Syntax
 
#include <stdio.h>
char *gets(char *s);
 
Description
 
Gets a string from stdin.
gets collects a string of characters terminated by a new line from the standard input stream stdin and puts it into s. The new line is replaced by a null character (\0) in s.
gets allows input strings to contain certain whitespace characters (spaces, tabs). gets returns when it encounters a new line; everything up to the new line is copied into s.
The gets function is not length-terminated. If the input string is sufficiently large, data can be overwritten and corrupted. The fgets function provides better control of input strings.
 
Note: For Win32s or Win32 GUI applications, stdin must be redirected.
 
Return Value
 
On success, gets returns the string argument s.
On end-of-file or error, it returns NULL
 
Borland C++ 5.0 Programmer's Guide

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]

stipe gets????
tu peux être un peu plus précis ou me donner un exemple s'il te plaît?
Merci :jap:
[SDF]Poire gets
stipe je voudrais faire un scanf de caractère puis les incorporés dans un tableau .....l'espace n'est pas pris en compte.
Comment y faut faire SVP!!?? Merci  :??:

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)