Projet de création de bibliothèque

Fermé
GrandMaitre9 Messages postés 15 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 2 octobre 2014 - 31 juil. 2013 à 23:20
GrandMaitre9 Messages postés 15 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 2 octobre 2014 - 1 août 2013 à 16:31
Bonjour,

Je suis débutant en programmation informatique, je prend des cours par correspondance et je suis en train d'apprendre le langage c et je ne connais aucun autre langage de programmation sur ordinateur à ce jour (c++ par exemple) à part le web.



Je remarqué qu'on ne pouvais pas écrire d'accent en c avec printf.

J'ai réussi à contourné le problème en faisant un exécutable pour écrire des accents dans un texte mais le programme se lance mal :


#include <stdio.h>
#include <stdlib.h>


int main()
{

char EAigue, EGrave, ECirc, AGrave, ICirc, ITrema, OCirc, UGrave;

printf("Inserer les accents correspondants :\n");

printf("\ne accent aigue : "); scanf("%c", &EAigue);
printf("\ne accent grave : "); scanf("%c", &EGrave); <-- (Il n'y a pas scanf sur l'écran)
printf("\ne accent circonflexe : "); scanf("%c", &ECirc);
printf("\na accent grave : "); scanf("%c", &AGrave); <-- (Il n'y a pas scanf sur l'écran)
printf("\ni accent circonflexe : "); scanf("%c", &ICirc);
printf("\ni accent Trema : "); scanf("%c", &ITrema); <-- (Il n'y a pas scanf sur l'écran)
printf("\nO accent circonflexe : "); scanf("%c", &OCirc);
printf("\nU accent Grave : "); scanf("%c", &UGrave); <-- (Il n'y a pas scanf sur l'écran)


printf("\n\nMauvais accents : être à Hawaï cet été où la mer est calme");
printf("\nBons accents : %ctre %c Hawa%c cet %ct%c o%c la mer est calme\n\n", ECirc, AGrave, ITrema, EAigue, EAigue, UGrave);

system("PAUSE");
return 0;
}

Pourquoi certains scanf ne s'affiche pas ?

Merci de m'éclairer à ce sujet.
A voir également:

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
1 août 2013 à 07:25
Bonjour,
Bien sûr que le C permet l'affichage des accents. C'est juste windows qui utilise pour des raisons historiques un autre encodage pour sa console. Mais cela se règle sans problème.
Sinon pour tes scanf, il faut savoir que lorsque tu appuies sur un caractère puos la touche entrée, cela provoque deux caractères à lire ( le caractère et entrée). Utilise un petit getchar () après chaque scanf () et tout rentrera dans l'ordre.

Cdlt
0
GrandMaitre9 Messages postés 15 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 2 octobre 2014
1 août 2013 à 09:36
Merci pour la réponse très rapide.

Et quand tu dis que le C permet l'affichage des accents, tu connaîtrais un code, un exécutable ou une bibliothèque permettant de le faire.

Merci
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
1 août 2013 à 14:54
J'ai pas d'exemple de code sous la main, mais la fonction "magique" Windows est : CharToOem() (ou même CharToOemBuff()).
Essaie par exemple :
char *chaineInitiale="hé hé ;-)";
ChaineAAfficher[50];
CharToOemBuff(chaineInitiale, chaineAAfficher, sizeof ChaineAAfficher - 1);
puts(ChaineAAfficher);

N'oublie pas : #include <windows.h>
Et ça devrait marcher :-).
0
GrandMaitre9 Messages postés 15 Date d'inscription dimanche 14 juillet 2013 Statut Membre Dernière intervention 2 octobre 2014
1 août 2013 à 16:31
ok merci je ne suis pas encore avancé jusque là mais en tout cas, c'est très sympa de ta part
0