J'utilise Windows 7 en français et j'essaie de compiler ce programme vraiment basique, mais Visual Studio est têtu et refuse de se conformer. J'ai également essayé de le compiler avec GCC 4.7 et Clang trunk sur Coliru et j'obtiens plus ou moins les mêmes erreurs (la sortie est inférieure au code), bien que je pense que Coliru fonctionne sur un système d'exploitation anglais, donc je ne m'attendrais pas à ce qu'il fonctionne de toute façon .
Qu'est-ce que je fais mal? Et comment puis-je le réparer?
Code
#inclure <iostream>
ent principal(ent argn, ent** argm) // entier, nombre d'arguments, valeur des arguments
{
std::cendehors << "Bonjour le monde!\n";
renvoi SORTIE_SUCCÈS;
}
Production
principal.cpp:1:6: erreur: prétraitement de la directive invalide #inclure
#inclure <iostream>
^
principal.cpp:6:8: erreur: '\303' égaré dans le programme
renvoi SORTIE_SUCCÈS;
^
principal.cpp:6:8: erreur: '\210' égaré dans le programme
principal.cpp:3:5: erreur: «ent» ne désigne pas un type
ent principal(ent argn, ent** argm) // entier, nombre d'arguments, value des arguments
^
c++
visual-studio-2013
french
Courses de légèreté en orbite
la source
la source
std::findeligne
au lieu d'utiliser un\n
personnage :)iostream
le nom correct de l'en-tête est en français?Réponses:
De nombreux problèmes sont dus à la mise en cache , mais le vôtre est l'un des autres types de problèmes difficiles : nommer les choses. Oui, la localisation est difficile.
Vous n'avez pas mentionné la variante de français que vous utilisez, mais d'après le message d'erreur, je pense que vous utilisez «français (France)» (ce que nous, les utilisateurs d'OS civilisés, appelons
fr_FR
). Lesfr_FR
paramètres régionaux de MS se comportent de manière très étrange: les lettres accentuées majuscules sont mappées sur leur homologue non accentué (pour une compatibilité descendante avec certains modèles de machines à écrire). Vous devez donc écrireSORTIE_SUCCES
au lieu deSORTIE_SUCCÈS
.Une solution de contournement consiste à utiliser la langue «français (Monaco)» (
fr_MC
) , où les lettres accentuées majuscules fonctionnent comme prévu. Malheureusement, la version monégasque du compilateur est très très chère. Vous pouvez également utiliser la version canadienne-française, française-belge ou française-suisse, mais celles-ci exigent toutes que vous soumettiez un fichier source bilingue (fr_CA
+en_CA
), trilingue (fr_BE
+nl_BE
+de_BE
) ou quadrilingue (fr_CH
+it_CH
+de_CH
+rm_CH
). Les variantes africaines du français sont sorties car elles sont trop pauvres pour se permettre un compilateur C ++, cependant vous pouvez utiliser C à la place.Ensuite, il y a d'autres erreurs de syntaxe dans votre programme:
J'ai wollun essayé le code suivant dans le compilateur C ++ inclus dans Émaxe 51,70, et cela a fonctionné:
Certains langages ont une meilleure prise en charge de l'internationalisation que C ++. Par exemple, voici un programme dans LOGO (à ne pas confondre avec LOGO bien sûr).
la source
Le problème est évidemment que vous incluez le mauvais en-tête standard:
devrait être:
En outre, vous constaterez que cela fonctionne beaucoup mieux si vous utilisez Studio Visuel Micromou ou les outils CCG (pour "Collection de Compilateurs GPU", btw), plutôt que leurs parents MVS ou GCC plus courants.
la source
.e
extension. Mais bien sûr, les extensions standards tels que.e
,.ee
,.epp
sont préférés par convention ... Pour en savoir plus: stackoverflow.com/questions/441568/...Vous avez une erreur sémantique - le deuxième argument de la fonction d'entrée doit être de type
cara**
, pasent**
:Pour l'
<iostream>
erreur, @MartinJ. déjà correctement indiqué que vous devriez utiliser à la<esflux>
place.En ce qui concerne les autres erreurs, il semble que votre compilateur soit simplement en grève. Cela peut se produire occasionnellement lors de la compilation du code français et devrait se corriger en quelques jours.
la source
Ce n'est pas un programme BASIC, donc Visual Studio ne sait pas quoi en faire.
De plus, sur un système français, vous devez passer un programme au compilateur.
la source
Bonjour Légèreté fait la course en orbite ,
Je voudrais souligner que même si vous suivez toutes les réponses données ici, votre programme ne compilera toujours pas à cause de votre ponctuation. Les points-virgules sont précédés d'un espace insécable en français.
Je recommanderais ce qui suit:
Veuillez noter que j'ai changé
argn
pournarg
, car c'est plus naturel en français (rien à voir avec les notations hongroises cependant)!Edit: suivi la recommandation d'Angew
la source
Presque tout a été couvert dans les réponses précédentes, mais si je peux ajouter:
c'est certes autorisé, mais ce qui suit est généralement préféré:
la source
Vous devez référencer le pré-processeur français:
hummm ... trop tard, c'est obsolète. La nouvelle version sera disponible cette semaine.
la source
Je me rends compte que cela ne s'applique pas à cette situation particulière, mais il est important de garder à l'esprit le sexe de vos objets lors de la programmation en français. Il existe 2 types de classes (
genre
)genre::masculins
etgenre::féminin
Par exemple:
De plus, lors du passage
this
à une autre fonction, l'appel de fonction est préfixé avec la liste des paramètres plutôt que suffixé:ou
Pour plus d'informations: Wikipedia Word Order
la source
Et si vous réessayez après les heures du déjeuner (12-22 h)? De plus, si vous obtenez plus d'un processeur, ils peuvent être en grève. Vous pouvez cependant récupérer votre proc avec cette commande (française) de Windows 7:
Répétez lorsque vous êtes coincé (mais n'oubliez pas de baisser le nombre à chaque fois!).
la source
set pension-starting-age = 62
pourrait aussi aider, pourrait changer pourset pension-starting-age = 60
bientôt ...Il semble que vous ayez oublié d'installer le
FrenChPP++
package. Après une installation réussie (vous devrez compilerFrenChPP++
sur un compilateur c ++ standard s'il n'y a pas de paquets binaires pour votre système (nous, à la grenouille non autorisée, recommandons d'utiliser g ++ pour cela, mais n'hésitez pas à utiliser clang aussi, mais ignorez les avertissements)) vous devrez créer un nouveau projet, et copiez-le simplement dans leprincipal.fcpp
fichier nouvellement créé . Ensuite, lors de l'exécution, leFrenChPP++
précompilateur (qui fonctionne de manière très similaire à la façon dont Qt gère son mécanisme de signaux / slot) analysera tous les.fcpp
fichiers et "traduira" le.fcpp
en valide.cpp
puis les compilera en utilisant votre compilateur par défaut du système.la source
Vous devrez probablement installer le pack de langue française pour C ++ 11. Si vous ne le trouvez pas, essayez http://www.bing.com/translator .
la source
Il y a tellement d'erreurs dans votre code, la plupart d'entre elles ont déjà été traitées dans les autres réponses. Mais ne savez-vous pas que les créateurs l'ont
C++
conçu pour que le code source du programme ne soit pas trop long lorsqu'il est traduit?Ce n'est pas le cas
std::cendehors
, maisstd::deh
(abréviation de dehors ) comme cela sestd::cin
traduit parstd::ded
(pour dedans ).Notez également qu'il existait auparavant des compilateurs qui ne se vidaient pas automatiquement
\n
, il est donc préférable de les utiliserstd::findl
( fin de ligne ). Donc ça devrait être comme ça:EDIT: Désolé, je n'ai pas repéré une autre erreur. La forme correcte est bien sûr d'utiliser des guillemets comme ceci:
la source
Vous ne pouvez pas utiliser de mots clés français dans un programme C ++ (ou C). Vous devez coder
et également
et bien sûr le code
int main(int argc, char**argv)
etc ...(merci pour votre blague du poisson d'avril!)
la source
Depuis que M. George Bush a interdit les frites françaises au profit des Liberty Fries plus savoureux (et des Freedom Fries moins savoureux mais tout aussi patriotiques), d'autres sociétés américaines retirent également le soutien au français dans leurs produits.
Vous devez utiliser un compilateur antérieur à 2003 ou envoyer un courrier à http://www.whitehouse.gov/contact/submit-questions-and-comments pour leur demander s'ils prévoient de revenir bientôt sur la situation.
la source
Tout d'abord, vous devez
avant de pouvoir utiliser la constante SORTIE_SUCCÈS.
Un autre problème avec votre code C ++ est que vous avez oublié d'utiliser std :: lend et que vous avez plutôt utilisé '\ n' dans votre chaîne de sortie - cela ne fonctionnera pas en code français, évidemment, seul le code écrit en anglais et en russe est autorisé pour faire ça.
Encore plus, vous avez utilisé une mauvaise indentation (GCC en français nécessite des tabulations au lieu d'espaces) et le placement des accolades (vous devez placer des accolades sur la même ligne chaque fois que possible, aucun espace entre eux n'est autorisé); les garder inchangés générera des erreurs d'exécution "vous ne connaissez pas votre tabulation, Jacques" et "pas assez d'amour entre accolades" dans votre code.
Après avoir modifié ces lignes, le code a été compilé avec succès. Il ne fonctionne toujours pas, probablement pour les raisons indiquées ici .
Extrait: http://ideone.fr/sQbL6E
la source