/******************************************************************************/
/*fonction affichant tout le tableau du code morse pouvant
etre code ou decode par ce programme*/
void help(char m[37][6],char t[])
{int i;
system("cls"); //à utiliser sous windows (efface l'écran)
//system("clear"); //à utiliser sous linux (efface l'écran)
/******************************************************************************/
/*fonction permettant la saisie du texte*/
void saisie_t(char c[])
{
//system("cls"); //à utiliser sous windows (efface l'écran)
//system("clear"); //à utiliser sous linux (efface l'écran)
printf("\t\t\t* Codage d'un texte en morse *\n\n\n");
printf("\tVeuillez saisir votre phrase a coder en morse (200 caracteres max)\n\n -> ");
int size = strlen (c);
fgets(c, size, stdin);
}
/******************************************************************************/
/*fonction permettant la saisie du texte morse*/
void saisie_m(char c[],char m[37][6],char t[])
{
char z[1][6],x[200];
int i,k=0,ex,zb=1;
do{
system("cls"); //à utiliser sous windows (efface l'écran)
//system("clear"); //à utiliser sous linux (efface l'écran)
printf("\t\t\t* Decodage d'un texte morse *\n\n\n");
printf("\tSaisissez votre texte caractere par caractere\n\n");
printf("\tA l'affichage de la fleche => appuyer sur Entree pour continuer,\n\n");
printf("\tsur h pour afficher le tableau du code morse\n\n");
printf("\tou sur Esc pour quitter la saisie et afficher le texte \n\n\t\t(PS: // represente l'espace)\n\n\n\n");
printf("Saisir un caractere en morse : ");
fgets(z[0], sizeof(z[0]), stdin);
if(ex==0){printf("\n\nCe caractere morse n'existe pas !");}
printf("\n =>\n\n\n");
switch(getchar())
{
case'H':
case'h':help(m,t);getchar();break;
case 27:zb=0;break;
}
}while(zb!=0);
printf("Voici votre texte decode : ");
affich_t(t,x,k); //appel à la fonction affichage qui va devoir nous afficher les valeurs de T X et K
}
/********************************************************************************/
/*fonction affichant le texte*/
void affich_t(char t[],char x[],int k)
{
int i;
for(i=0;i<k;i++)
{
printf("%c",t[x[i]]);
}
}
/********************************************************************************/
/*fonction calculant la taille d un mot ou texte*/
int taille_mot(char c[])
{
int i=0;
while(c[i]!='\0'){i++;}
return i;
}
/******************************************************************************/
/*fonction affichant le texte code en morse*/
void affiche_morse(char c[],char t[],char m[37][6])
{
int i,j,b=0;
do
{
//system("cls"); //à utiliser sous windows (efface l'écran)
//system("clear"); //à utiliser sous linux (efface l'écran)
menu(c,t,m,&k);
}while(k!=0);
}
Le menu fonctionne, l'affichage du tableau du code morse aussi ainsi que le choix pour quitter (choix 3 et 4).
Or j'ai un problème avec les choix 1 et 2 qui correspondent aux parties de codage du texte en morse et du décodage du morse en texte. Lorsque je compile, je n'ai aucune erreur, mais lorsque j'execute le programme et que je choisi par exemple le choix numéro 1, il serait sensé me demander de taper mon texte, puis d'afficher mon texte en morse, or il saute l'étape où je dois saisir mon texte. Il m'affiche bien l'invite pour le faire, mais me mets directement voici ... codé en morse, et biensur il n'affiche rien vu que je n'est pu saisir mon texte.
Pour le choix 2 qui doit décodé du morse et le passer sours forme textuelle, il me met directement que le code morse n'existe pas, sans même que je n'est pu le sasir. J'ai beau lui donner de vrai mots en morse, il me mettra sans cesse que le code orse n'existe pas.
D'où pourrais provenir cette erreur ??
Viendrait t'elle du getchar qui pourrait ne prendre que 1 seul caractère en compte et non tout une chaîne ?
Du fgets, pourtant je lui est bien précisé de prendre la chaine de caractère C, qui a pour longueur celle définie après scannage de la chaîne de caractère tappée, ainsi qu'un stdin pour bien capter ce qui a été entré.
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.