Problème de conversion

a marqué ce sujet comme résolu.

Bonjour ! Je me suis récemment lancé dans la programmation et l'apprentissage du C grâce au tuto sur le site (excellent d'ailleurs merci de sa qualité). Je télécharge NotePad++, mingw, crée un programme avec notepad (pur demander l'âge d'une personne). J'ouvre ensuite mon invité de commande, je change mon répertoire (C:\Users\programmation) puis au moment de convertir (en utilisant la commande zcc main.c je crois) la console me met "erreur cc1.exe : pas d'implantation iconv ne peut convertirde UTF 8 vers ibm850. Qu'est ce que cela ? http://imgur.com/ZvxM4fH Je télécharge alors CodeBlock, me disant que utiliser un IDE me permettra d'éviter ce problème de convertion==> venant sans doute de MIngw du coup. J'installe codeblock, lance mon programme et la : "erreur loading mingw 32 failed" Comment puis je faire pour résoudre mon problème ? A noter que je peux Skype si besoin pou plus de précisions si je n'ai pas été assez claire

+0 -0

bonjour,

tout d’abord, pour nous montrer du code ou des messages d’erreur, pas besoin de captures d’écran, tu peux juste nous coller le texte ici :

1
bla bla bla

ensuite, ce serait bien que tu nous dises ton système d’exploitation pour qu’on puisse t’aider (bon avec ton image, c’est probablement Windows 8 ou 10 ?).

enfin, on dit « compiler », pas « convertir ».


pour en venir au problème, je suppose que tu parles de ce tuto, disant notamment de créer le script zcc.bat1 avec le code suivant :

1
2
@echo off
gcc -Wall -Wextra -pedantic -std=c89 -fno-common -fno-builtin -fexec-charset=ibm850 %*

je pense que tu peux faire disparaître l’erreur en supprimant la dernière option, -fexec-charset=ibm850.2

sinon, l’erreur dit que tu n’as pas le programme iconv sur ton ordinateur, ou tout du moins que gcc ne l’a pas trouvé. c’est un programme du monde Unix/GNU, qui devrait donc venir de MinGW. je ne connais pas mingw-get, mais essaie quelque chose comme :

1
mingw-get install iconv

ton erreur avec CodeBlocks signifie probablement que CodeBlocks n’a pas trouvé MinGW… c’est l’erreur classique de débutant. as‐tu configuré CodeBlocks pour qu’il connaisse le chemin de MinGW ? (chercher comment faire sur Internet)


  1. le nom est plutôt mal choisi, vu qu’il désigne déjà un autre compilateur de C qui n’a rien à voir avec gcc… 

  2. cette option est là pour faire en sorte que les accents de ton programme s’affichent correctement sur la console Windows (la console de Windows étant vieille et moisie). l’inconvénient est que les accents que ton programme écrira ailleurs que sur la console (dans un fichier, sur une interface graphique…) seront incorrects. de plus, il existe une autre solution pour la console, qui n’affecte pas le reste. je pense donc que cette option est une mauvaise idée en général, sauf peut‐être au tout tout début de l’apprentissage du C (mais alors on se moque un peu d’avoir des accents moches sur la console). 

+0 -0

Salut,

je pense que tu peux faire disparaître l’erreur en supprimant la dernière option, -fexec-charset=ibm850.

Maëlan

L'erreur est effectivement liée à cette ligne qui nécessite la présence d'iconv (je vais corriger cela dans le cours). Elle est effectivement présente pour éviter les problèmes d'accents dans la console de Windows pour le début du cours. Celle-ci sera expliquée dans la troisième partie du cours, quant il sera question de l'encodage des chaînes de caractères.

le nom est plutôt mal choisi, vu qu’il désigne déjà [un autre compilateur de C][zcc] qui n’a rien à voir avec gcc…

Maëlan

Ouais, 'fin, je doute qu'un débutant installe ce truc… Par ailleurs, à ma décharge, il n'apparaît pas dans les premiers résultats de recherche via Startpage et Duckduckgo. :-°

+0 -0

Je viens de modifier la procédure d'installation sous Windows. Donc, en définitive, le fichier « zcc.bat » doit contenir les lignes suivantes.

1
2
@echo off
gcc -Wall -Wextra -pedantic -std=c89 -fno-common -fno-builtin %*

Et la procédure ci-dessous doit être suivie.

Maintenant, rendez-vous dans le menu des accessoires, réalisez un clic droit sur l'invite de commande et sélectionnez « propriétés ». Dans l'onglet « raccourci », remplacer le champ « cible » par « %windir%\system32\cmd.exe /k "chcp 65001" ». Enfin, dans l'onglet « police », choisissez « Consolas » ou « Lucida Console » et adaptez la taille suivant vos envies.

Pas besoin d'installer iconv, donc.

+0 -0

le nom est plutôt mal choisi, vu qu’il désigne déjà [un autre compilateur de C][zcc] qui n’a rien à voir avec gcc…

Maëlan

Ouais, 'fin, je doute qu'un débutant installe ce truc… Par ailleurs, à ma décharge, il n'apparaît pas dans les premiers résultats de recherche via Startpage et Duckduckgo. :-°

Taurre

oui, mais c’est ce que j’ai trouvé en cherchant « zcc compiler » (en effet « zcc » tout court ne donne rien de pertinent) pour savoir de quoi il en retournait, avant de voir votre script dans le cours. et je tiens à préciser que cette chose n’est pas si anecdotique que ça : je la connaissais déjà, comme je pense un bon nombre de gens qui s’amusaient à programmer sur leur calculatrice à l’école… :-°

1
[…] -std=c89 […]

bonjour, nous sommes en 2016, le soleil brille, c’est une merveilleuse nouvelle journée qui commence. :p

+0 -0

oui, mais c’est ce que j’ai trouvé en cherchant « zcc compiler » (en effet « zcc » tout court ne donne rien de pertinent) pour savoir de quoi il en retournait, avant de voir votre script dans le cours. et je tiens à préciser que cette chose n’est pas si anecdotique que ça : je la connaissais déjà, comme je pense un bon nombre de gens qui s’amusaient à programmer sur leur calculatrice à l’école… :-°

Maëlan

En plus ce n'est même pas son vrai nom, z'avaient qu'à l'appeler z88dk ou z88. :p

1
[…] -std=c89 […]

bonjour, nous sommes en 2016, le soleil brille, c’est une merveilleuse nouvelle journée qui commence. :p

Maëlan

Il y a pas de normes C16 que je sache. :-°

Sinon, je m'interroge tout de même : utiliser l'encodage UTF-8 est-il la bonne solution sous Windows ou bien doit-je plutôt recourir au Windows-1252 ?

+0 -0

%windir%\system32\cmd.exe /k "chcp 65001

Mettre de l'UTF-8 dans la console est une très mauvaise idée, il n'est pas du tout géré correctement.

Petit test simple pour s'en convaincre :

1
2
> chcp 65001
> echo ça marche pas

Chez moi le ç ne s'affiche pas lors de la saisie, et la fenêtre disparaît en silence après avoir appuyé sur enter ! test effectué sur W7 x64 mais je doute que ça ait beaucoup changé sur W8 ou 10.

Je conseillerais plutôt de prendre un CP dans la bande 1250-1258. L'alphabet occidental est dans le 1252 qui est une variante du Latin-1/ISO-8859-1.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte