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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

scanner un texte entier

n°1067086
chrisbk
-
Posté le 30-04-2005 à 19:33:21  profilanswer
 

Reprise du message précédent :

Emmanuel Delahaye a écrit :

Pas portable. En plus pas la peine de l'embrouiller... Je lui ai concocté un exo en 4 étapes (voir précédemment), j'aimerais bien m'y tenir...
 
Il s'approche du #1, c'est déjà pas si mal...


 
certes, mais franchement pour de la lecture de fichier c'est quandmeme carrément le moins lourd


---------------
NP: HTTP Error 764 Stupid coder found
mood
Publicité
Posté le 30-04-2005 à 19:33:21  profilanswer
 

n°1067092
skelter
Posté le 30-04-2005 à 19:35:50  profilanswer
 

d'jo a écrit :

la c'est mieux
      for (i=0 ; i<strlen(text); i++)
      {
      printf("%c",text[i]);
      }
}


 
puts(text);  

n°1067096
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 19:40:51  profilanswer
 

d'jo a écrit :

la c'est mieux
#include <stdio.h>
#include <stdlib.h>
 
int main() {
char text[80];
int i;
fflush (stdout);
 
      printf("Entrez un text : " );


Mamma mia! J'ai écrit ça, moi ? Tu as lu l'article, ou tu en as fait un filtre à café ? Comment est-ce que fflush(stdout) pourrait avoir le moindre effet avant le printf()? Vite, mon Karcher... Refléchi avant de taper. Cesse de taper au hasard...

Citation :


      fgets (text,sizeof text, stdin);
      for (i=0 ; i<strlen(text); i++)


Ok, il y a de l'idée et le code est correct. Il est simplement pas efficace. Tu es tombé dans le piège classique qui consiste à appeler strlen() à chaque tour pour mesurer la même chose. On pourrait n'avoir qu'un appel avant la boucle et se souvenir de la longueur lue, mais en fait j'avais parlé de 'text[i] == 0'. Il y avait peut être une bonne raison ?


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067098
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 19:43:18  profilanswer
 


Vi, mais comme le PO a dans l'idée d'explorer la chaine saisie, autant qu'il apprenne à le faire correctement caractères par caractères...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067099
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 19:47:18  profilanswer
 

chrisbk a écrit :

certes, mais franchement pour de la lecture de fichier c'est quandmeme carrément le moins lourd


Peu importe, c'est un débutant total, il faut qu'il maitrise déjà les bases... Peut importe que le programme soit peu efficace au départ... L'important est que toutes les étapes soient maitrisées... de plus, comme tu l'as fait remarqué, pour le moment, il s'agit de stdin...
 
Et pour finir, il est sous Windows (Dev-C++), il n'a probablement pas nmap() (et moi non plus)


Message édité par Emmanuel Delahaye le 30-04-2005 à 19:48:04

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067100
chrisbk
-
Posté le 30-04-2005 à 19:48:30  profilanswer
 

Emmanuel Delahaye a écrit :

Peu importe, c'est un débutant total, il faut qu'il maitrise déjà les bases... Peut importe que le probramme soit peu efficace au départ... L'important est que toutes les étapes soient maitrisées... de plus, comme tu l'as fait remarqué, pour le moment, il s'agit de stdin...
 
de plus, il est sous Windows (Dev-C++), il n'a probablement pas nmap() (et moi non plus)


 
 
ah mais je suis bien d'accord hein ? [:god] je te laisse a tes exercices [:god] (sous win c'est un brin plus chiant a mettre en place)


---------------
NP: HTTP Error 764 Stupid coder found
n°1067101
skelter
Posté le 30-04-2005 à 19:48:30  profilanswer
 

Emmanuel Delahaye a écrit :

Vi, mais comme le PO a dans l'idée d'explorer la chaine saisie, autant qu'il apprenne à le faire correctement caractères par caractères...


 
c'est juste que j'aime pas cette mani d'utiliser printf quand on a pas besoin d'un affichage formaté, ca aussi ce n'est pas efficace
putchar(text[i]); alors


Message édité par skelter le 30-04-2005 à 19:48:53
n°1067104
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 19:49:18  profilanswer
 

skelter a écrit :

c'est juste que j'aime pas cette mani d'utiliser printf quand on a pas besoin d'un affichage formaté, ca aussi ce n'est pas efficace
putchar(text[i]); alors


+1
 
T'as entendu, d'jo ?


Message édité par Emmanuel Delahaye le 30-04-2005 à 19:50:18

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067119
d'jo
Posté le 30-04-2005 à 19:58:04  profilanswer
 

Ca à l'air juste non ? je peux avoir acces aux caracteres avec ce code. Mais voila lorque je remplace l'ancien scanf par le fgets dans mon programme il saute directement le fgets et me demande le prochain ??? je comprend vraiment pas pourquoi d'autant que je n'ai pas d'erreur de compilation

n°1067120
d'jo
Posté le 30-04-2005 à 19:59:08  profilanswer
 

oups ya eu un bug et j'avais pas les derniers messages ... je les lis

mood
Publicité
Posté le 30-04-2005 à 19:59:08  profilanswer
 

n°1067122
chrisbk
-
Posté le 30-04-2005 à 20:01:13  profilanswer
 

(petit indice : quand le compilo C ne te sors pas d'erreur de compilation, la derniere (mai alors vraiment la derniere) chose a en deduire est que ton prog marche (surtout sous nux))


---------------
NP: HTTP Error 764 Stupid coder found
n°1067123
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 20:01:43  profilanswer
 

d'jo a écrit :

Ca à l'air juste non ? je peux avoir acces aux caracteres avec ce code. Mais voila lorque je remplace l'ancien scanf par le fgets dans mon programme il saute directement le fgets et me demande le prochain ??? je comprend vraiment pas pourquoi d'autant que je n'ai pas d'erreur de compilation


Publie ton dernier code, qu'on y voit clair...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067124
d'jo
Posté le 30-04-2005 à 20:03:23  profilanswer
 

voila je l'ai intègré dans mon code je vous passe les autres details car il est long
int main()
{
    int select,i;
    char password[N],text[N],code[N],decode[N];
     
  welcom();
printf("Quel type de cryptage désirez vous ?\n\n" ) ;  
  printf("Basic par transmutation alphabètique: 1\n" );
  printf("Evolué par complement :2\n" );
  printf("Secret Défense Cryptage (SDC):3\n" );
  scanf("%d",&select);
switch(select)
{
  case 1 :{
printf("Vous avez choisi le cryptage numéro %d \n\n",select);
printf("entrez le mot de passe de codage (à mémoriser !):  " );
fgets (password, sizeof password, stdin);
printf("\nentrez le mot à coder : " );
fgets (text, sizeof text, stdin);
   
for (i=0 ;i<strlen(text) ; i++)  
{
 code[i]=codage1(equiv(password[i]),equiv(text[i]));    
}
printf("\nle mot après codage est : " );
for (i=0 ;i<strlen(text) ; i++)  
{
 printf("%c",code[i]);  
}  
for (i=0 ;i<strlen(text) ; i++)  
{
 decode[i]=decodage1(equiv(password[i]),code[i]);    
}
printf("\nle mot  décodé à partir du mot codé : " );
for (i=0 ;i<strlen(text) ; i++)  
{
 printf("%c",decode[i]);  
}    
           };
break;                

n°1067125
d'jo
Posté le 30-04-2005 à 20:04:37  profilanswer
 

et pour les printf suis desolé on m'appris comme ca mais si ya mieux je vais m'y mettre

n°1067133
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 20:15:35  profilanswer
 

d'jo a écrit :

voila je l'ai intègré dans mon code je vous passe les autres details car il est long


 

main.c:14: warning: function declaration isn't a prototype
main.c: In function `main':
main.c:16: `N' undeclared (first use in this function)
main.c:16: (Each undeclared identifier is reported only once
 
main.c:16: for each function it appears in.)
main.c:18: warning: implicit declaration of function `welcom'
main.c:19: warning: implicit declaration of function `printf'
main.c:23: warning: implicit declaration of function `scanf'
main.c:30: warning: implicit declaration of function `fgets'
main.c:30: `stdin' undeclared (first use in this function)
main.c:34: warning: implicit declaration of function `strlen'
main.c:36: warning: implicit declaration of function `codage1'
main.c:36: warning: implicit declaration of function `equiv'
main.c:45: warning: implicit declaration of function `decodage1'
main.c:45: warning: redundant redeclaration of `equiv' in same scope
main.c:36: warning: previous declaration of `equiv'
main.c:54: parse error at end of input
main.c:16: warning: unused variable `decode'
main.c:16: warning: unused variable `code'
 
main.c:16: warning: unused variable `text'
main.c:16: warning: unused variable `password'


Pour avoir la version qui compile, faut que j'bute une vielle ou quoi ? C'est quoi le contrat ?
 
Et puis maintenant, que tu es grand et que tu as du poil au menton, tu vas essayer d'utiliser les boutons [Fixe] ou [C/C++] pour mieux présenter ton code, ok ? Pas trop dur ?
 
Comme on te l'a pourtant dit 3000 fois, à ton niveau, comme au mien, il ne faut pas utiliser scanf() (fonction de gourou)

  scanf ("%d", &select);


mais fgets() avec la fonction de conversion qui va bien (strtol(), par exemple)
 
Ce qui se passe, c'est que scanf() laisse trainer un '\n' dans stdin, et que celui-ci déclenche automatiquement le fgets() suivant sans attente.
 
Il faut soit apprendre à utiliser scanf() (compliqué), soit utiliser l' alternative connue qu'est fgets().
 
Et pour strlen() dans le test de boucle, on a pas déjà dit quelque chose ?
 


Message édité par Emmanuel Delahaye le 30-04-2005 à 21:08:23

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067135
d'jo
Posté le 30-04-2005 à 20:19:42  profilanswer
 

voila tu l'as en privé mais j'aime bien l'idée de buter une vieille lol

n°1067158
d'jo
Posté le 30-04-2005 à 20:38:41  profilanswer
 

ok je connaissais pas non plus strtol j' éecris donc:
fgets (select, sizeof select, stdin);
select=strtol(select,NULL,2)  
?
C'est déja nouveau pour moi le C si en plus Le prof apprend pas les bonnes bases ...

n°1067164
chrisbk
-
Posté le 30-04-2005 à 20:43:13  profilanswer
 

nan, pas NULL dans le deuxieme param de strtol, sinon tu n'as pas moyen de savoir si la conversion a echouée ou non


---------------
NP: HTTP Error 764 Stupid coder found
n°1067234
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 21:12:30  profilanswer
 

d'jo a écrit :

ok je connaissais pas non plus strtol j' éecris donc:
fgets (select, sizeof select, stdin);
select=strtol(select,NULL,2)


Nan pas 2. C'est quoi ce paramètre ? La base, non? Alors tu rentre une valeur décimale, non ? 1,2,3 etc. Donc la base, c'est 10, non ?

Citation :

C'est déja nouveau pour moi le C si en plus Le prof apprend pas les bonnes bases ...


Qu'on le pende par les tripes...
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067252
d'jo
Posté le 30-04-2005 à 21:33:35  profilanswer
 

???

n°1067277
Emmanuel D​elahaye
C is a sharp tool
Posté le 30-04-2005 à 22:05:51  profilanswer
 


STP, apprend aussi à utiliser le bouton de citation [ ]->. On ne sais pas de quoi tu parles ni à qui tu réponds...  
 
Tu les a lues les regles du forums? Ou tu t'assoies dessus façon "je suis un rebelle, j'ai pas de regles..."
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1067284
d'jo
Posté le 30-04-2005 à 22:32:08  profilanswer
 

Emmanuel Delahaye a écrit :

STP, apprend aussi à utiliser le bouton de citation [ ]->. On ne sais pas de quoi tu parles ni à qui tu réponds...  
 
Tu les a lues les regles du forums? Ou tu t'assoies dessus façon "je suis un rebelle, j'ai pas de regles..."


 
voiloo c'est mieux ?
bon ça marche presque sauf pour un léger probleme auquel je m'attendais pour les espaces entre les mots d'une phrase , il m'associt un 'w'  sans aucune règles apparente??  
si tu as une idée ...

n°1067286
chrisbk
-
Posté le 30-04-2005 à 22:33:37  profilanswer
 

dis jveux pas dire, mais si vous vous envoyer du code par MP faites tout par MP, et pas juste un morceaux par ce que bon...


---------------
NP: HTTP Error 764 Stupid coder found
n°1067299
d'jo
Posté le 30-04-2005 à 22:45:13  profilanswer
 

chrisbk a écrit :

dis jveux pas dire, mais si vous vous envoyer du code par MP faites tout par MP, et pas juste un morceaux par ce que bon...


 
excuse en fait mon progamme change par exemple un 'a' en 'b' , 'b' en 'c' etc ... evidement quand le programme recontre un  blanc ' ' il ne comprend pas et moi il me renvoi un w ???
Y a t il un code ascii pour les espaces ?

n°1067302
chrisbk
-
Posté le 30-04-2005 à 22:49:24  profilanswer
 

bin tu peux ecrire if (toto == ' ') , tout betement


Message édité par chrisbk le 30-04-2005 à 22:50:37

---------------
NP: HTTP Error 764 Stupid coder found
n°1067303
skelter
Posté le 30-04-2005 à 22:52:08  profilanswer
 

d'jo a écrit :

excuse en fait mon progamme change par exemple un 'a' en 'b' , 'b' en 'c' etc ... evidement quand le programme recontre un  blanc ' ' il ne comprend pas et moi il me renvoi un w ???
Y a t il un code ascii pour les espaces ?


 
la constante ' ', et un caractere est un entier dont la representation depend du jeu de caractere, c'est generalement l'ascii (mais pas forcement)


Message édité par skelter le 30-04-2005 à 22:53:15
n°1067305
d'jo
Posté le 30-04-2005 à 22:57:50  profilanswer
 

lol pas con j'essai

n°1067306
d'jo
Posté le 30-04-2005 à 23:03:50  profilanswer
 

impeccable . J'ai encore une question mais je veux pas rouvrir un sujet pour ça : peut on concatener un meme mot en C comme la command cat ? ex j'ai comand =>commandcommandcommandcommand

n°1067311
skelter
Posté le 30-04-2005 à 23:07:25  profilanswer
 

strcat (voir strncat), et si tu enchaine des concatenations pense a recuperer le pointeur retourner par strcat ou t'en servir directement dans la meme expression.

n°1067344
d'jo
Posté le 30-04-2005 à 23:36:12  profilanswer
 

Waou super pour comprendre merci beaucoup Emmanuel

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[Flash] Problème texte vectoriel[PB] Scanner de ports sous linux
Effacer le texte par défaut d'un champ de formulaireImportation fichier texte en excel avec plus de 256 colonnes
récupérer une chaines de caractère d'un fichier texte[CSS] Texte qui sort de mon bloc
Excel et VB6 ... copier du texte dans un document Excel ? Aide pour Programme de génération aléatoire de texte (Noob)
[Résolu] Insérer dans un champ texte en fonction de checkboxfixer la taille d'un texte area
Plus de sujets relatifs à : scanner un texte entier


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