Lig*_*ica 237 c++ visual-studio-2013 french
我正在运行Windows 7 French,我正在尝试编译这个非常基本的程序,但Visual Studio很顽固并且拒绝遵守.我也尝试用Coliru上的GCC 4.7和Clang trunk编译它,我得到或多或少相同的错误(输出低于代码),虽然我认为Coliru在英文操作系统上运行所以我不希望它仍然可以工作.
我究竟做错了什么?我该如何解决?
#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;
}
Run Code Online (Sandbox Code Playgroud)
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
^
Run Code Online (Sandbox Code Playgroud)
Mar*_* J. 151
问题显然是你包含了错误的标准标题:
#inclure <iostream>
Run Code Online (Sandbox Code Playgroud)
应该:
#inclure <fluxes>
Run Code Online (Sandbox Code Playgroud)
此外,你会发现这更好用的是你使用Studio Visuel Micromou或CCG(代表"Collection de Compilateurs GPU",顺便说一句)工具,而不是他们更常见的MVS或GCC亲属.
Rei*_*ica 111
你有一个语义错误 - 入口函数的第二个参数应该是类型cara**
,而不是ent**
:
ent principal(ent argn, cara** argm)
Run Code Online (Sandbox Code Playgroud)对于<iostream>
错误,@ MartinJ.已经正确地指出你应该使用<esflux>
.
关于其他错误,似乎你的编译器只是罢工.在编译法语代码时偶尔会发生这种情况,并且应该在几天后自行修复.
Gil*_*il' 62
许多问题都是由缓存引起的,但是你的问题是另一种难题:命名事物.是的,本地化很难.
您没有提到您正在使用的法语版本,但是从错误消息中,我认为您正在使用"法语(法国)"(我们的文明操作系统用户称之为fr_FR
).MS的fr_FR
语言环境表现得非常奇怪:大写的重音字母映射到它们的非重音字母(为了与某些打字机模型向后兼容).所以你需要写SORTIE_SUCCES
而不是SORTIE_SUCCÈS
.
解决方法是使用"法语(摩纳哥)"(fr_MC
)语言,其中大写重音字母按预期工作.不幸的是,Monaco版本的编译器非常昂贵.您也可以使用加拿大法语,比利时法语或瑞士法语版本,但这些都要求您提交双语(fr_CA
+ en_CA
),三语(fr_BE
+ nl_BE
+ de_BE
)或四语(fr_CH
+ it_CH
+ de_CH
+ rm_CH
)源文件.非法的法语变体是因为它们太穷而无法提供C++编译器,但是你可以使用C代替.
然后程序中还有其他语法错误:
我wollun尝试了Émaxe51,70中包含的C++编译器中的以下代码,并且wollun工作:
#inclure <fluxes>
principal ent(argn ent, argm **ent) // entier, nombre d'arguments, valeur des arguments
{
norme::sortiec << « Bonjour à tout le monde !\n » ;
retourner SORTIE_SUCCÈS ;
}
Run Code Online (Sandbox Code Playgroud)
有些语言比C++有更好的国际化支持.例如,这是LOGO中的一个程序(当然不要与LOGO混淆).
pour exemple
répète 18 [av 5 td 10]
td 60
répète 18 [av 5 td 10]
fin
Run Code Online (Sandbox Code Playgroud)
zma*_*ies 51
我正在尝试编译这个非常基本的程序.
这不是BASIC程序,因此Visual Studio不知道如何处理它.
此外,在法语系统上,您需要将程序传递给编译器.
Pie*_*aud 44
你好Légèretéfaitla course en orbite,
我想强调的是,即使你按照这里给出的所有答案,你的程序仍然不会因为你的标点符号而编译.分号前面是法语中不间断的空格.
我会推荐以下内容:
#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 ;
}
Run Code Online (Sandbox Code Playgroud)
请注意我换argn
到narg
的,因为它在法文中是更自然的(无关匈牙利命名法虽然)!
编辑:遵循angew的建议
jwa*_*wav 35
几乎所有内容都包含在之前的答案中,但如果我可以添加:
renvoyer SORTIE_SUCCÈS ; // correct, but bad pratice
Run Code Online (Sandbox Code Playgroud)
这是允许的证书,但通常首选以下内容:
capitulation ; // a better, frenchier approach
Run Code Online (Sandbox Code Playgroud)
pma*_*tin 17
您需要参考法国预处理器:
#inclure <Montebourg>
Run Code Online (Sandbox Code Playgroud)
嗯...太晚了,它被弃用了.新版本将于本周发布.
Cri*_*ole 17
我意识到这不适用于这种特殊情况,但在法语编程时要记住对象的性别很重要.有两种类(genre
)genre::masculins
和genre::féminin
例如:
genre::masculins Hommes {}
genre::féminin Femme {}
Run Code Online (Sandbox Code Playgroud)
此外,当传递this
给另一个函数时,函数调用前缀为参数列表而不是后缀:
genre::masculins Croissant {
nul nourrir(Hommes hommes) {
hommes.(ce)manger ;
}
}
Run Code Online (Sandbox Code Playgroud)
要么
genre::féminin Grenouille {
nul nourrir(Hommes hommes) {
hommes.(cette)manger;
}
}
Run Code Online (Sandbox Code Playgroud)
供进一步参考:维基百科Word Order
Syl*_*gue 15
如果您在午餐时间(下午12点至下午2点)重试,该怎么办?此外,如果您获得超过一个处理器,他们可能会罢工.但是,您可以使用此(法语)Windows 7命令返回proc:
set max-working-hours-a-week = 35
Run Code Online (Sandbox Code Playgroud)
当你被卡住时重复(但不要忘记每次降低数字!).
Fer*_*eak 10
好像你忘了安装FrenChPP++
包.安装成功后(FrenChPP++
如果您的系统没有二进制包,则需要在标准c ++编译器上编译(我们在Unauthorized Frog中建议使用g ++,但是也可以使用clang,但忽略警告))您需要创建一个新项目,然后将其粘贴到新创建的principal.fcpp
文件中.然后在执行时,FrenChPP++
预编译器(其工作方式与Qt处理其信号/插槽机制的方式非常相似)将解析所有.fcpp
文件,并将"转换" .fcpp
为有效.cpp
,然后使用系统默认编译器编译它们.
您的代码中存在很多错误,其中大多数错误已在其他答案中得到解决.但是,难道你不知道C++
设计它的创建者,以便程序源代码在翻译时不会过长吗?
它不是std::cendehors
,但std::deh
(对于dehors而言)是(对于dedans)的std::cin
翻译.std::ded
还要注意曾经有过没有自动刷新的编译器\n
,因此最好使用std::findl
(fin de ligne).所以它应该是这样的:
std::deh << "Bonjour le monde!" << std::findl;
Run Code Online (Sandbox Code Playgroud)
编辑:对不起,我没有发现另一个错误.正确的形式当然是使用这样的guillemets:
std::deh << «Bonjour le monde!» << std::findl;
Run Code Online (Sandbox Code Playgroud)
您不能在C++(或C)程序中使用法语关键字.你应该编码
#include <iostream>
// ^^^ the english word "include"
Run Code Online (Sandbox Code Playgroud)
同样地
return EXIT_SUCCESS;
Run Code Online (Sandbox Code Playgroud)
当然代码int main(int argc, char**argv)
等......
(感谢你愚人节的笑话!)
归档时间: |
|
查看次数: |
27848 次 |
最近记录: |