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

  FORUM HardWare.fr
  Programmation
  C

  2tits questions sur scanf et printf

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

2tits questions sur scanf et printf

n°507489
peak
Posté le 04-09-2003 à 16:22:57  profilanswer
 

Bonjours,  
j'ai deux petites question débiles;  
 
1) Comment faire un scanf("%s", tmp); sans que les caractères tapés ne soient affichés? (exemple password)
 
2) Y a t'il moyen simple d'empêcher le cout de retourner à la ligne si ce qui veux être afficher sort du cadre d'un xterm? (et d'éventuellement ne pas afficher la parti trop longue le cas échéant)
 
merci


Message édité par peak le 05-09-2003 à 09:58:13
mood
Publicité
Posté le 04-09-2003 à 16:22:57  profilanswer
 

n°507499
Taz
bisounours-codeur
Posté le 04-09-2003 à 16:25:52  profilanswer
 

1) voir avec ton systme et une bibliothèque spécialisée qui te fournira un ruc gnere noecho(). ne jamais utiliser scanf("%s" )
2) j'assume que tu parles de C. connais pas cout. aucun moyen. les émulateurs prennent et formatent à leur gise: quel est l'interet d'ecrire du texte pour qu'il ne soit pas affiché?

n°507508
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-09-2003 à 16:30:08  profilanswer
 

Merci de donner un titre plus clair à ton topic aussi...


---------------
J'ai un string dans l'array (Paris Hilton)
n°507715
peak
Posté le 04-09-2003 à 18:18:52  profilanswer
 

Désolé pour le titre!  :sweat:  
 
1)"ne jamais utiliser scanf("%s" )" pourquoi?
 
2)Pour le "cout", je voulais dire une écriture sur la sortie standard.  
En fait le bute étai juste d'être sûr de garder une certaine mise en forme et éventuellement élargir la fenêtre si ça dépassai mais c'est pas cruciale ou du moins je peux trouver des solutions plus intelligentes pour éviter un maximum ce problème, je voulais juste être sûr qu'il n'existait pas une super technique révolutionnaire permettant de le faire facilement et systématiquement.  :ange:

n°507725
Taz
bisounours-codeur
Posté le 04-09-2003 à 18:27:12  profilanswer
 

Code :
  1. char buffer[10] // je rpévois large
  2. scanf("%s", buffer);


 

0123456789 <Entrée> ***boom***

n°507792
peak
Posté le 04-09-2003 à 19:37:21  profilanswer
 

Tu me conseilles de faire comment?

n°507798
polo021
Posté le 04-09-2003 à 19:46:13  profilanswer
 

while (caractere pas egal à ENTER)
 saisir,\b, afficher une etoile
 
non?  :??:

n°507799
chrisbk
-
Posté le 04-09-2003 à 19:47:01  profilanswer
 

polo021 a écrit :

while (caractere pas egal à ENTER)
 saisir,\b, afficher une etoile
 
non?  :??:  


y'a des chances que ta focntion de saisie attendent un \n pour te renvoyer le resultat. Sous nux j'avais du passer par curse

n°507800
polo021
Posté le 04-09-2003 à 19:48:24  profilanswer
 

scanf %1d   c'est possible?
 
edit : getchar


Message édité par polo021 le 04-09-2003 à 19:50:49
n°507802
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 04-09-2003 à 19:56:50  profilanswer
 

Peak a écrit :

Désolé pour le titre!  :sweat:  


Tu voudrais pas le changer par hasard ?


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 04-09-2003 à 19:56:50  profilanswer
 

n°507830
*syl*
--&gt; []
Posté le 04-09-2003 à 20:52:35  profilanswer
 

Peak a écrit :

Tu me conseilles de faire comment?

Message de Dieu :

Code :
  1. #include<stdio.h>
  2. #include<ctype.h>
  3. #include<stdlib.h>
  4. void quit() // write error message and quit
  5. {
  6.   fprintf(stderr,"memory exhausted\n" ) ;
  7.   exit(1) ;
  8. }
  9. int main()
  10. {
  11.   int max = 20;
  12.   char* name= (char*)malloc(max) ; // allocate buffer
  13.   if (name == 0) quit() ;
  14.   printf("Please enter your first name:\n" ) ;
  15.  
  16.   while (true) { // skip leading whitespace
  17.     int c = getchar() ;
  18.     if (c == EOF) break; // end of file
  19.     if (!isspace(c)) {
  20.       ungetc(c,stdin) ;
  21.       break;
  22.     }
  23.   }
  24.   int i = 0;
  25.   while (true) {
  26.     int c = getchar() ;
  27.     if (c == ´\n´ || c == EOF) { // at end; add terminating zero
  28.       name[i] = 0;
  29.       break;
  30.     }
  31.     name[i] = c;
  32.     if (i==max-1) { // buffer full
  33.       max = max+max;
  34.       name= (char*)realloc(name,max) ; // get a new and larger buffer
  35.       if (name == 0) quit() ;
  36.     }
  37.     i++;
  38.   }
  39.   printf("Hello %s\n",name) ;
  40.   free(name) ; // release memory
  41.   return 0;
  42. }

:D
 
Edit : mise en forme


Message édité par *syl* le 04-09-2003 à 20:56:35
n°507898
Taz
bisounours-codeur
Posté le 04-09-2003 à 21:55:50  profilanswer
 

fgets les mecs
ou getline si votre système en dispose (sinon on a du poster plusieurs fois une implémentation possible)

n°508246
peak
Posté le 05-09-2003 à 10:08:14  profilanswer
 

merci pour vos réponses  :jap:  
 
Je ne pensai pas que scanf("%s" ) était si foireux, c'est ce que j'ai toujours utilisé en C, j'en ai un beau paquet à changer mais merci du conseil.


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

  2tits questions sur scanf et printf

 

Sujets relatifs
[C] printf dans préprocesseur[C# et .NET] Quelques questions (newbie inside)
[C] Question con sur printfGabarit d un printf
Questions a propos de l'authentification.[ACCESS][SQL] Questions sur des requêtes avec Group by
[ACCESS]Questions sur la multi utilisation[SQL] quelques questions
2 tites questions (php/mysql)Je viens de debuter les classes , qq questions :
Plus de sujets relatifs à : 2tits questions sur scanf et printf


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