我正在运行Windows 7法语,我试图编译这个真正基本的程序,但Visual Studio是固执的,拒绝遵守。我也尝试在Coliru上用GCC 4.7和Clang trunk编译它,我得到或多或少相同的错误(输出在代码下面),尽管我认为Coliru运行在英语操作系统上,所以我不期望它无论如何都能工作。
我做错了什么?我该怎么解决呢?
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;
}
输出
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++的创造者设计它是为了让程序源代码在翻译时不会太长吗?
它不是std::cendehors,而是std::deh (dehors的缩写),因为std::cin翻译为std::ded (dedeans)。
还请注意,过去有编译器不会自动刷新\n,所以最好使用std::findl (fin de ligne)。所以应该是这样的:
std::deh << "Bonjour le monde!" << std::findl;
编辑:对不起,我没有发现另一个错误。正确的形式当然是使用这样的guillemets:
std::deh << «Bonjour le monde!» << std::findl;
首先,你需要
#inclure <clibstd>
才能使用SORTIE_SUCCÈS constant。
c++代码的另一个问题是,你忘记了使用std::lend,而在输出字符串中使用了'\n'——这在法语代码中行不通,显然,只有用英语和俄语编写的代码才允许这样做。
更重要的是,您使用了错误的缩进(法语上的GCC要求制表符而不是空格)和大括号放置(您需要尽可能将大括号放置在同一行上,它们之间不允许有空格);保持不变将在代码中产生“vous ne connaissez pas votre tabulation, Jacques”和“pas assez d'amour entre accolades”运行时错误。
在我更改这些行之后,代码成功编译。它仍然没有运行,可能是由于这里指定的原因。
片段:http://ideone.fr/sQbL6E
你好,轻跑进入轨道,
我要强调的是,即使您遵循了这里给出的所有答案,由于标点符号的存在,您的程序仍然无法编译。在法语中,分号前面有一个不间断的空格。
我建议以下几点:
#inclure <esflux>
ent principal(ent narg, cara** marg) // entier, nombre d'arguments, valeur des arguments
{
std::cendehors << "Bonjour le monde !\n" ;
renvoyer SORTIE_SUCCÈS ;
}
请注意,我把argn改成了narg,因为它在法语中更自然(尽管与匈牙利符号无关)!
编辑:遵循angew的建议