Estou executando o Windows 7 em francês e estou tentando compilar esse programa realmente básico, mas o Visual Studio está sendo teimoso e se recusa a cumprir. Também tentei compilá-lo com o tronco GCC 4.7 e Clang no Coliru e recebo mais ou menos os mesmos erros (a saída está abaixo do código), embora eu ache que o Coliru seja executado em um sistema operacional inglês, por isso não esperaria que funcionasse de qualquer maneira .
O que estou fazendo de errado? E como posso corrigir isso?
Código
#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;
}
Resultado
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
Raças de leveza em órbita
fonte
fonte
std::findeligne
em vez de usar um\n
personagem :)iostream
o nome correto do cabeçalho está em francês?Respostas:
Muitos problemas são causados pelo cache , mas o seu é um dos outros tipos de problemas difíceis : nomear coisas. Sim, a localização é difícil.
Você não mencionou qual variante de francês está usando, mas, a partir da mensagem de erro, acho que você está usando "francês (França)" (o que os usuários de sistemas operacionais civilizados chamam
fr_FR
). Ofr_FR
código do idioma da MS se comporta de uma maneira muito estranha: as letras acentuadas em maiúsculas são mapeadas para suas contrapartes não acentuadas (para compatibilidade com versões anteriores de alguns modelos de máquinas de escrever). Então você precisa escrever emSORTIE_SUCCES
vez deSORTIE_SUCCÈS
.Uma solução alternativa é usar o "francês (Mônaco)" (
fr_MC
idioma ) , onde letras acentuadas em maiúsculas funcionam conforme o esperado. Infelizmente, a versão do compilador em Mônaco é muito, muito cara. Você também pode usar a versão em francês canadense, francês belga ou francês suíço, mas tudo isso exige que você envie um arquivo de origem bilíngue (fr_CA
+en_CA
), trilíngue (fr_BE
+nl_BE
+de_BE
) ou quadrilíneo (fr_CH
+it_CH
+de_CH
+rm_CH
). As variantes africanas do francês estão fora porque são muito pobres para permitir um compilador C ++; no entanto, você pode usar o C.Existem outros erros de sintaxe no seu programa:
Eu tentei o seguinte código no compilador C ++ incluído no Émaxe 51,70, e funcionou:
Algumas linguagens têm melhor suporte à internacionalização que o C ++. Por exemplo, aqui está um programa no LOGO (não deve ser confundido com o LOGO, é claro).
fonte
O problema é obviamente que você está incluindo o cabeçalho padrão errado:
deveria estar:
Além disso, você descobrirá que isso funciona muito melhor se você usar as ferramentas Studio Visuel Micromou ou CCG (sigla para "Collection de Compilateurs GPU", btw), em vez de seus parentes mais comuns do MVS ou do GCC.
fonte
.e
extensão. Mas, claro, as extensões padrão, como.e
,.ee
,.epp
são preferidos por convenção ... Para mais detalhes: stackoverflow.com/questions/441568/...Você tem um erro semântico - o segundo argumento da função de entrada deve ser do tipo
cara**
, nãoent**
:Para o
<iostream>
erro, @MartinJ. já corretamente indicado, você deve estar usando<esflux>
.Em relação aos outros erros, parece que seu compilador está simplesmente em greve. Isso pode acontecer ocasionalmente ao compilar o código em francês e deve se corrigir em alguns dias.
fonte
Como não é um programa BASIC, o Visual Studio não sabe o que fazer com ele.
Além disso, em um sistema francês, você precisa passar um programa para o compilador.
fonte
Olá legado do curso em órbita ,
Gostaria de enfatizar que, mesmo que você siga todas as respostas fornecidas aqui, seu programa ainda não será compilado devido à sua pontuação. Os pontos e vírgulas são precedidos por um espaço ininterrupto em francês.
Eu recomendaria o seguinte:
Observe que eu mudei
argn
paranarg
, pois é mais natural em francês (nada a ver com as notações húngaras)!Edit: seguiu a recomendação de angew
fonte
Praticamente tudo foi abordado nas respostas anteriores, mas se posso acrescentar:
esta é certes permitidos, mas a seguir é geralmente preferido:
fonte
Você precisa fazer referência ao pré-processador francês:
hummm ... tarde demais, está obsoleto. O novo lançamento estará disponível esta semana.
fonte
Sei que isso não se aplica a essa situação específica, mas é importante ter em mente o gênero de seus objetos ao programar em francês. Existem 2 tipos de classes (
genre
)genre::masculins
egenre::féminin
Por exemplo:
Além disso, ao passar
this
para outra função, a chamada da função é prefixada com a lista de parâmetros, em vez de com o sufixo:ou
Para referência adicional: Wikipedia Word Order
fonte
E se você tentar novamente após o horário do almoço (12 a 14 horas)? Além disso, se você adquirir mais de um processador, eles podem estar em greve. No entanto, você pode recuperar seu processo com este comando (francês) do Windows 7:
Repita quando estiver parado (mas não se esqueça de diminuir o número cada vez!).
fonte
set pension-starting-age = 62
também poderia ajudar, pode mudar paraset pension-starting-age = 60
breve ...Parece que você esqueceu de instalar o
FrenChPP++
pacote. Após uma instalação bem-sucedida (você precisará compilarFrenChPP++
em um compilador c ++ padrão se não houver pacotes binários para o seu sistema (nós, do Unauthorized Frog, recomendamos o uso do g ++ para isso, mas fique à vontade para usar o clang também, mas ignore os avisos)) você precisará criar um novo projeto e copie e cole noprincipal.fcpp
arquivo recém-criado . Então, após a execução, oFrenChPP++
pré - compilador (que funciona de maneira muito semelhante à maneira como o Qt lida com o mecanismo de sinais / slots) analisa todos os.fcpp
arquivos e "traduz" o valor.fcpp
para válido.cpp
e os compila usando o compilador padrão do sistema.fonte
Você provavelmente precisará instalar o pacote de idioma francês para C ++ 11. Se você não conseguir encontrá-lo, tente http://www.bing.com/translator .
fonte
Existem muitos erros no seu código, a maioria deles já foi corrigida nas outras respostas. Mas você não sabe que os criadores de
C++
projetaram para que o código-fonte do programa não fique obverly longo quando traduzido?Não é
std::cendehors
, masstd::deh
(abreviação de dehors ) comostd::cin
traduz parastd::ded
(para dedans ).Observe também que costumava haver compiladores que não eram liberados automaticamente
\n
, então é melhor usarstd::findl
( fin de ligne ). Então deve ser assim:EDIT: Desculpe, não vi outro erro. A forma correta do curso é usar guillemets como este:
fonte
Você não pode usar palavras-chave em francês em um programa C ++ (ou C). Você deve codificar
e da mesma forma
e, claro, código
int main(int argc, char**argv)
etc ...(obrigado pela piada do seu tolo de abril!)
fonte
Desde que George Bush proibiu as batatas fritas em favor das mais saborosas da liberdade (e as menos saborosas, mas igualmente patrióticas da liberdade), outras empresas americanas também estão removendo o apoio aos franceses em seus produtos.
Você precisa usar um compilador anterior a 2003 ou enviar um email para http://www.whitehouse.gov/contact/submit-questions-and-comments para perguntar se eles planejam reverter a situação em breve.
fonte
Em primeiro lugar, você precisa
antes de poder usar a constante SORTIE_SUCCÈS.
Outro problema com o seu código C ++ é que você esqueceu de usar std :: lend e, em vez disso, usou '\ n' na sua string de saída - ele não funcionará no código francês, obviamente, apenas o código escrito em inglês e russo é permitido fazer isso.
Ainda mais, você usou recuo incorreto (o GCC em francês exige guias em vez de espaços) e posicionamento de chaves (você precisa colocar chaves na mesma linha sempre que possível, sem espaços entre eles permitidos); mantê-los inalterados gerará erros de tempo de execução "todos os tipos de problemas, Jacques" e "problemas de relacionamento entre elogios" em seu código.
Depois de alterar essas linhas, o código foi compilado com êxito. Ainda não foi executado, provavelmente pelos motivos especificados aqui .
Snippet: http://ideone.fr/sQbL6E
fonte