236

私は Windows 7 フランス語を実行しており、この非常に基本的なプログラムをコンパイルしようとしていますが、Visual Studio は頑固で準拠を拒否しています。また、 Coliruで GCC 4.7 と Clang トランクの両方を使用してコンパイルしようとしましたが、多かれ少なかれ同じエラーが発生します (出力はコードの下にあります)。 .

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

コード

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

15 に答える 15

151

問題は明らかに、間違った標準ヘッダーを含めていることです。

#inclure <iostream>

次のようにする必要があります。

#inclure <fluxes>

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

于 2014-04-01T08:35:17.343 に答える
111
  1. セマンティック エラーがあります。エントリ関数の 2 番目の引数は、cara**ではなくのタイプである必要がありent**ます。

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

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

于 2014-04-01T09:12:01.390 に答える
62

多くの問題はキャッシングが原因ですが、あなたの問題は別の種類の難しい問題の1 つです: 名前付けです。はい、ローカライズは難しいです。

使用しているフランス語の変種については言及されていませんが、エラー メッセージから、「フランス語 (フランス)」(文明化された OS のユーザーが呼ぶもの) を使用していると思いますfr_FR。MS のfr_FRロケールは非常に奇妙な方法で動作します。アクセント付きの大文字は、アクセントのない対応する文字にマップされます (一部のタイプライター モデルとの下位互換性のため)。SORTIE_SUCCESしたがって、代わりに書く必要がありますSORTIE_SUCCÈS

回避策として、「フランス語 (モナコ)」 ( fr_MC) 言語を使用すると、大文字のアクセント付き文字が期待どおりに機能します。残念ながら、Monaco バージョンのコンパイラは非常に高価です。カナダ フランス語版、ベルギー フランス語版、スイス フランス語版を使用することもできますが、いずれもバイリンガル ( fr_CA+ en_CA)、トリリンガル ( fr_BE+ nl_BE+ de_BE)、または 4 か国語 ( fr_CH+ it_CH+ de_CH+ rm_CH) のソース ファイルを提出する必要があります。フランス語のアフリカの変種は、貧弱すぎて C++ コンパイラを購入できないため、廃止されましたが、代わりに C を使用できます。

次に、プログラムに他の構文エラーがあります。

  • いくつかのキーワードを翻訳するのを忘れました。
  • コンパイラとドキュメントは、同じ単語に対して常に同じ翻訳を使用するとは限らないことに注意してください。
  • あなたはフランス語で形容詞が名詞の後に来るという事実を説明していません.
  • 間違ったタイプの引用符を使用しています。

Émaxe 51,70 に含まれている C++ コンパイラで次のコードを試してみましたが、うまくいきませんでした。

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

一部の言語は、C++ よりも優れた国際化サポートを備えています。たとえば、ここにLOGOのプログラムがあります (もちろん、 LOGOと混同しないでください)。

pour exemple
  répète 18 [av 5 td 10]
  td 60
  répète 18 [av 5 td 10]
fin
于 2014-04-01T18:28:28.760 に答える
44

こんにちはLégèreté fait la 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 ;
}

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

編集:angewの推奨に従った

于 2014-04-01T09:11:30.873 に答える
17

これがこの特定の状況には当てはまらないことは理解していますが、フランス語でプログラミングするときは、オブジェクトの性別に留意することが重要です。クラスには 2 種類あり ( genre)genre::masculinsgenre::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;
    }
}

詳細は、ウィキペディアの語順を参照してください。

于 2014-04-01T14:10:18.160 に答える
15

昼休み後 (12 ~ 2 時) に再試行するとどうなりますか? また、プロセッサが複数ある場合は、ストライキが発生する可能性があります。ただし、次の (フランス語) Windows 7 コマンドを使用して、proc を元に戻すことができます。

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

行き詰まったら繰り返します (ただし、毎回数値を下げることを忘れないでください!)。

于 2014-04-01T15:00:26.010 に答える
7

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

于 2014-04-01T08:45:52.393 に答える
5

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

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

同様に

 return EXIT_SUCCESS;

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

(エイプリルフールの冗談をありがとう!)

于 2014-04-01T08:27:58.097 に答える
3

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

#inclure <clibstd>

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

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

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

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

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

于 2014-04-01T16:29:00.093 に答える