pour voir si un caract est un expace, tab ou enter - C++ - Programmation
Marsh Posté le 05-02-2003 à 22:27:55
t'y étais presque... les caractères d'échappement, c'est un backslash donc '\n' et '\t'
Marsh Posté le 05-02-2003 à 22:32:05
++Taz a écrit : t'y étais presque... les caractères d'échappement, c'est un backslash donc '\n' et '\t' |
effectivement merci
mais ca marche tjr pas. donc j'ai du faire une autre connerie
en vitesse comme ca personne ne voit?
Code :
|
Marsh Posté le 05-02-2003 à 22:35:20
je comprends pas trop ton code vu qu'il est incomplet et que tu ne dis pas ou est le problème. une seule chose: la fin de fichier c'est EOF et pas EOL (inconnu au bataillon d'ailleurs)
edit: quand test=0, la boucle ewt breakée, donc le code if(test) ne s'executera jamais
Marsh Posté le 05-02-2003 à 22:38:26
++Taz a écrit : je comprends pas trop ton code vu qu'il est incomplet et que tu ne dis pas ou est le problème. une seule chose: la fin de fichier c'est EOF et pas EOL (inconnu au bataillon d'ailleurs) |
en fait c un code qu'un pote a fait et j'essaye de rajouter des trucs par dessus. mais ca foire sur certain point.
dans ce cas le prob c'est le passage que j'ai rajouté
if ((c==' '||(c=='\n'||(c=='\t'){v++;}
else
sans ca ca marche mais avec ca en resultat j'ai le bon nombre de caractere (tot) mais v reste a 0 et le tablo n'affiche rien, ni les lettre ni les nombres d'apparition de chaque lettre.
Marsh Posté le 05-02-2003 à 22:42:01
et pour le code complet
Code :
|
bon faut pardonner le faible nivo mais ca fait 10 mois qu'on avait plus toucher a la prog et on a fait ca sur le tas aujourd'hui faut le temps de s'y remettre.
Marsh Posté le 05-02-2003 à 22:47:32
tu ferais bien de tester la fin de fichier en plus de EOL. et indentes un peu, je suis fatigué et ton code est asez illisible
et puis ce genre de prototyp c'est bof
void stat(struct signe tab[100], int x)
d'habitude on ecrit
void stat(struct signe *tab, size_t n_elements, int x, ....) au cas ou les éléments de tab sont modifiés.
et void stat(const struct signe *tab, ....) dans le cas contraire
Marsh Posté le 05-02-2003 à 22:54:56
ok mais j'arrive tjr pas a obtenir un resultat, l'execution du prog me donne
Caractere Nombre |
Marsh Posté le 05-02-2003 à 22:59:43
Mon niveau n'est pas meilleur, mais un truc me "choque" en regardant de près :
au début i vaut 0
puis la boucle
for(j=0; j<i; j++) part de j = 0 et s'arrête à i - 1
donc au premier tour, on n'y passe pas dans cette boucle, donc on n'incrémente pas i, donc il reste nul, donc le for(j=0; j<i; j++) n'aura jamais lieu, donc i restera à zéro tout le temps.
Du moins il me semble.
Y a un truc qui m'"arrache" les yeux (mais suis qu'amateur auto-didacte donc suis pas très fortiche) :
void tri(struct signe x[100]) la dimension 100, elle sert à quoi ? Le tableau peut passer sous forme de pointeur, vu qu'il doit déja être dimensionné en externe avant appel.
Marsh Posté le 05-02-2003 à 23:11:00
heu ouai je crois que je vais refaire tout le code ca sera plus simple paske la y a rien qui marche.
Marsh Posté le 06-02-2003 à 05:46:26
Code :
|
Code :
|
Edit: J'avais mis isampha.
Marsh Posté le 07-02-2003 à 00:23:06
C'est normal, ++Taz et moi on est du même niveau...
Marsh Posté le 10-02-2003 à 13:18:49
pour tester si c'est un espace y'a une methode assez simple :
Dans le ctype.h
y'a la fonction isspace pour tester si c'est un espace ou non.
Par contre pour les autres fonctions isalpha, isdigit, ispunct, ... ca ne devrait pas t'aider pour tester une tab ou la touche entrée.
Cédric
Marsh Posté le 10-02-2003 à 13:21:02
ou alors passé par les codes ASCII 0x0D, etc. si çà marche tjs pas.
Marsh Posté le 10-02-2003 à 15:16:30
moi il me semble que isspace détecte aussi si c'est une tabulation.
et la touche entrée ne correspond à rien: il faut juste regarder si c'est '\n'. jamais le code ascii
Marsh Posté le 10-02-2003 à 16:09:20
ouai de toute facon c bon on va reprendre tout le projet de 0 pour mieux structurer ca donc ce prog on laisse tomber.
par contre on va devoir faire un prog d'optimisation combinatoire par metaheuristique sur base du paradigme de la fourmillier. la on va peux etre avoir besoin d'aide pour certain bout de code
Marsh Posté le 05-02-2003 à 22:26:51
on peux mettre ca?
if ((c==' '||(c=='/n'||(c=='/t')
paske ca a l'air de pas marcher.