CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet résolu : [C] Question sur une boucle

DébutPage précedente
1
Page suivantePage suivante
[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 17:51:52

Bonjour !

Alors voilà, j'apprends les structures, et j'ai codé un truc pour m'exercer. Mais y'a un détail qui me chiffone :
En gros mon code demande a chaque joueur dans le tableau joueurs son pseudo à tour de rôle.
Le code marche niquel, sauf quand j'entre un caractère spécial :(

Le code :
http://pastebin.com/PKk0sfZf

Ma structure :
typedef struct Joueur Joueur; struct Joueur{     char pseudo[100]; // Faites pas attention à ça j'ai pas encore vu l'allocation dynamique je suis conscient des risques };

Voilà le résultat quand ça fonctionne et quand ça fonctionne pas :
http://puu.sh/iKLTZ/7112ae42ec.jpg

Et là :
http://puu.sh/iKLVT/e87e43ea08.png

Je voudrais savoir pourquoi est-ce que ça ne fonctionne pas lorsqu'il y a des caractères spéciaux ? Et comment y remédier ? Ça ne me dérange pas mais j'aime bien savoir.

Merci !

DemonSurf DemonSurf
MP
Niveau 10
02 juillet 2015 à 18:05:43

Le problème ne vient pas du code, ou du C, mais de la console windows.

C'est de la merde simplement, elle ne peut pas afficher de caractères spéciaux. Affiche tes résultats dans une fenêtre à l'aide d'une librairie comme GTK+ et les caractères spéciaux s'afficheront.

[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 18:13:19

Le 02 juillet 2015 à 18:05:43 demonsurf a écrit :
Le problème ne vient pas du code, ou du C, mais de la console windows.

C'est de la merde simplement, elle ne peut pas afficher de caractères spéciaux. Affiche tes résultats dans une fenêtre à l'aide d'une librairie comme GTK+ et les caractères spéciaux s'afficheront.

Je suis sous Debian :hap:

Darkandgel Darkandgel
MP
Niveau 10
02 juillet 2015 à 18:22:53

Tu es sur que tu recuperes les bonnes valeurs ?
Fais nous voir les lignes ou tu lis l'input utilisateur

[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 18:24:01

C'est dans le pastebin :
for(i = 0; i < NB_JOUEUR; i++){     printf("Pseudo du joueur n°%d\n", i+1);     scanf("%s", joueurs[i].pseudo); }

Darkandgel Darkandgel
MP
Niveau 10
02 juillet 2015 à 18:26:51

Ah désolé, j'avais zappé #Fatique #PaslesyeuxEnFaceDesTrous

[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 18:28:57

np np :hap:

Candystand Candystand
MP
Niveau 10
02 juillet 2015 à 18:34:27

J'ai jamais réellement utilisé le scanf, mais je pense que ça vient du fait que tu mettes un espace dans le pseudo :( la solution serait d'utiliser la fonction read (man read :hap: )

Message édité le 02 juillet 2015 à 18:35:05 par Candystand
[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 19:49:49

En effet, sans espace ça fonctionne :)
Bon bah tempis je vais pas chipotter, merci :noel:

[Kyomaro] [Kyomaro]
MP
Niveau 10
02 juillet 2015 à 20:21:36

http://openclassrooms.com/courses/apprenez-a-programmer-en-c/la-saisie-de-texte-securisee
Ca répond à ma question :)

papy386 papy386
MP
Niveau 10
03 juillet 2015 à 11:53:57

La programmation en général c'est en code ASCII "anglais" c'est a dire pas d’accès et sur les 128 premiers caractère. d'ou l'impossibilité de ton programme a l'afficher!

On a inventer l’Unicode pour ce genre de problème, si tu peut essais l'utf-8

[Kyomaro] [Kyomaro]
MP
Niveau 10
04 juillet 2015 à 01:50:15

Le 03 juillet 2015 à 11:53:57 papy386 a écrit :
La programmation en général c'est en code ASCII "anglais" c'est a dire pas d’accès et sur les 128 premiers caractère. d'ou l'impossibilité de ton programme a l'afficher!

On a inventer l’Unicode pour ce genre de problème, si tu peut essais l'utf-8

Le problème ne venait pas de là mais de ma fonction scanf, et les caractères spéciaux type "?" ou "!" sont bien dans la table ASCII

PhoqueFlamby PhoqueFlamby
MP
Niveau 10
05 juillet 2015 à 22:12:43

En effet, il vaut mieux ne pas utiliser scanf c'est pas mal dangereux comme fonction, et plutôt crade :noel:

Rien de mieux qu'on bon vieux read :ok:

[Kyomaro] [Kyomaro]
MP
Niveau 10
05 juillet 2015 à 22:21:50

Yep, j'ai compris le message :ok:

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : godrik, LGV
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment