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

  FORUM HardWare.fr
  Programmation

  [C] faire un scanf d'un espace

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] faire un scanf d'un espace

n°86521
stipe
Posté le 06-01-2002 à 12:26:39  profilanswer
 

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  :??:

mood
Publicité
Posté le 06-01-2002 à 12:26:39  profilanswer
 

n°86522
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 12:28:27  profilanswer
 

gets


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86523
stipe
Posté le 06-01-2002 à 12:29:41  profilanswer
 

gets????
tu peux être un peu plus précis ou me donner un exemple s'il te plaît?
Merci :jap:

n°86525
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 12:32:36  profilanswer
 

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]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86527
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 12:34:42  profilanswer
 

/* 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


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86529
stipe
Posté le 06-01-2002 à 12:46:02  profilanswer
 

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

n°86533
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 12:59:12  profilanswer
 

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


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86538
stipe
Posté le 06-01-2002 à 13:34:15  profilanswer
 

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  ;)

n°86542
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 13:44:14  profilanswer
 

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....


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°86546
stipe
Posté le 06-01-2002 à 14:12:46  profilanswer
 

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

mood
Publicité
Posté le 06-01-2002 à 14:12:46  profilanswer
 

n°86547
[SDF]Poire
Vive Grumly
Posté le 06-01-2002 à 14:19:19  profilanswer
 

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:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
n°87180
djrom
Posté le 08-01-2002 à 20:52:39  profilanswer
 

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 !

n°1735277
laflaf3d
Posté le 21-05-2008 à 15:35:13  profilanswer
 

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+

n°1735278
Taz
bisounours-codeur
Posté le 21-05-2008 à 15:36:52  profilanswer
 

superbe déterrage, on avait tous arrêté de respirer depuis.


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

  [C] faire un scanf d'un espace

 

Sujets relatifs
[C - Linux] problème avec scanf[C] Aide sur scanf
[PHP] Quelle méthode utiliser pour un espace membres?[Delphi] Composant pour minimiser la perte d'espace sur les Cds
[HTML ou CSS] Comment specifier l'espace entre 2 lignes ?Espace en SQL
[windows - Java] espace d'environnement[Visual C++]Récupérer espace libre
[HMTL/CSS?] Gérer l'espace entre les lignes ? Le réduire ?[SQL VBA]message d erreur de l espace!!!!!!! Besoin de pros
Plus de sujets relatifs à : [C] faire un scanf d'un espace


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