web-dev-qa-db-ja.com

フランス語でWindows 7でプログラムをコンパイルできないのはなぜですか?

私はWindows 7フランス語を実行しており、この本当に基本的なプログラムをコンパイルしようとしていますが、Visual Studioは頑固であり、準拠を拒否しています。また、GCC 4.7とClangトランクの両方で Colir でコンパイルしようとしましたが、Coliruは英語OSで実行されると思いますが、ほぼ同じエラー(出力はコード以下)になります。とにかく動作することを期待しないでください。

私は何を間違えていますか?そして、どうすれば修正できますか?

コード

#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
     ^

問題は、間違った標準ヘッダーをインクルードしていることです。

#inclure <iostream>

する必要があります:

#inclure <fluxes>

また、より一般的なMVSまたはGCCの親thanではなく、Studio Visuel MicromouまたはCCG(「Collection de Compilateurs GPU」の略)ツールを使用すると、これがはるかに優れていることがわかります。

151
Martin J.
  1. セマンティックエラーがあります-エントリ関数の2番目の引数は、cara**ではなく、ent**型である必要があります。

    ent principal(ent argn, cara** argm)
    
  2. <iostream>エラーの場合、@ MartinJ。すでに正しく指摘されているので、代わりに<esflux>を使用する必要があります。

  3. その他のエラーについては、コンパイラが単に攻撃されているようです。これは、フランス語のコードをコンパイルするときに時々発生する可能性があり、数日で修正されるはずです。

111
Angew

私はこれを本当にコンパイルしようとしています基本プログラム

これはBASICプログラムではないため、Visual Studioはそれをどう処理するかを知りません。

さらに、フランスのシステムでは、プログラムをコンパイラーに渡す必要があります。

51
zmarties

こんにちは軌道上でのルジェレテのコース

ここで与えられたすべての答えを守っても、句読点のためにプログラムはコンパイルされないことを強調したいと思います。セミコロンの前には、フランス語の改行なしスペースがあります。

以下をお勧めします。

#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 ;
}

argnnargに変更したことに注意してください。フランス語の方が自然です(ハンガリーの表記とは関係ありません)。

編集:angewの推奨に従いました

44
Pierre Arlaud

ほぼすべてが前の回答で説明されていますが、私が追加できる場合:

renvoyer SORTIE_SUCCÈS ; // correct, but bad pratice

これはcertesが許可されていますが、通常は以下が推奨されます。

capitulation ; // a better, frenchier approach
35
jwav

これはこの特定の状況には当てはまりませんが、フランス語でプログラミングするときはオブジェクトの性別を念頭に置くことが重要です。クラスには2つのタイプがあります(genregenre::masculinsおよびgenre::féminin

例えば:

genre::masculins Hommes {}
genre::féminin Femme {}

さらに、thisを別の関数に渡すとき、関数呼び出しには接尾辞ではなくパラメーターリストが接頭辞として付けられます。

genre::masculins Croissant {
    nul nourrir(Hommes hommes) {
        hommes.(ce)manger ;
    }
}

または

genre::féminin Grenouille {
    nul nourrir(Hommes hommes) {
        hommes.(cette)manger;
    }
}

詳細については、 Wikipedia Word Order

17
Crisfole

フランスのプリプロセッサを参照する必要があります。

#inclure <Montebourg>

うーん...遅すぎる、それは非推奨です。新しいリリースは今週利用可能になります。

17
pmartin

昼食後(午後12時から2時)に再試行するとどうなりますか?また、1つ以上のプロセッサを取得した場合、ストライキが発生している可能性があります。ただし、この(フランス語)Windows 7コマンドを使用して、プロシージャを元に戻すことができます。

set max-working-hours-a-week = 35

立ち往生したら繰り返します(ただし、毎回数値を下げることを忘れないでください!)。

15

FrenChPP++パッケージのインストールを忘れたようです。インストールに成功したら(システムにバイナリパッケージがない場合は、標準のc ++コンパイラでFrenChPP++をコンパイルする必要があります(Unauthorized Frogでは、このためにg ++を使用することをお勧めしますが、clangを使用することもできますが、警告を無視してください))新しいプロジェクトを作成し、これをコピーして、新しく作成したprincipal.fcppファイルに貼り付ける必要があります。次に、実行時にFrenChPP++プリコンパイラ(Qtがシグナル/スロットメカニズムを処理する方法と非常によく似た動作をします)はすべての.fcppファイルを解析し、.fcppを有効な.cppし、システムのデフォルトコンパイラを使用してコンパイルします。

10
Ferenc Deak

コードには非常に多くのエラーがありますが、それらのほとんどはすでに他の回答で解決されています。しかし、C++の作成者が、プログラムのソースコードが翻訳時にあまり長くならないように設計したことを知っていますか?

std::cendehorsではなく、std::dehdehorsの略)std::cinstd::deddedans)に変換されるため、 。

また、\nを自動的にフラッシュしないコンパイラがあったため、std::findlfin de ligne)を使用することをお勧めします。したがって、次のようになります。

   std::deh << "Bonjour le monde!" << std::findl; 

編集:申し訳ありませんが、私は別の間違いを見つけませんでした。正しい形式は、このようなギメットを使用することです:

   std::deh << «Bonjour le monde!» << std::findl; 
7
Axel

おそらく、C++ 11用のフランス語の言語パックをインストールする必要があります。見つからない場合は、 http://www.bing.com/translator を試してください。

7
n.m.

C++(またはC)プログラムではフランス語のキーワードを使用できません。コーディングする必要があります

 #include <iostream>
 //  ^^^  the english Word "include" 

同様に

 return EXIT_SUCCESS;

そしてもちろんコードint main(int argc, char**argv)など...

(エイプリルフールのジョークをありがとう!)

ジョージブッシュ氏は、よりおいしいリバティフライド(そして味は劣るが愛国心が強いフリーダムフライド)を支持してフレンチフライを禁止したため、他のアメリカ企業も自社製品のフレンチサポートを削除しています。

2003年以前のコンパイラを使用するか、 http://www.whitehouse.gov/contact/submit-questions-and-comments にメールを送信して、状況を元に戻すかどうかを尋ねる必要があります。すぐに。

4
rupps

まず、する必要があります

#inclure <clibstd>

sORTIE_SUCCÈS定数を使用する前に。

C++コードのもう1つの問題は、std :: lendを使用するのを忘れて、代わりに出力文字列で「\ n」を使用したことです。フランス語のコードでは動作しません。明らかに、英語とロシア語で書かれたコードのみが許可されますそれをするために。

さらに、間違ったインデント(フランス語のGCCではスペースの代わりにタブが必要)とブレースの配置(可能な場合はブレースを同じ行に配置する必要があります。変更しないと、コードに「vous ne connaissez pas votre tabulation、Jacques」および「pas assez d'amour entre accolades」ランタイムエラーが生成されます。

これらの行を変更した後、コードは正常にコンパイルされました。おそらく指定された理由により、まだ実行されていません here

スニペット: http://ideone.fr/sQbL6E

3
vaxquis