1

今日、Slackware 13.37をインストールした後、問題が発生しました。デフォルトのGCC4.5.2ではコードをコンパイルできません。今、私はStephenDavisの本「C++ for dummies」でC++を研究しており、これをコンパイルしたいと思います。

#include <stdio.h>
#include <iostream.h>

int main(int nNumberofArgs, char* pszArgs[])
{

int nNCelsius;
cout << "Celsisus: ";
cin >> nNCelsius;

int nNFactor;
nNFactor = 212 - 32;

int nFahrenheit;
nFahrenheit = nNFactor * nNCelsius / 100 + 32;

cout << "Fahrenheit: ";
cout << nFahrenheit;

return 0;
}

しかし、私のGCC4.5.2では次のエラーが発生します。

FahTCel.cpp:7:14: error: expected ')' before ';' token
FahTCel.cpp:7:14: error: 'main' declared as function returning a function
FahTCel.cpp:8:1: error: 'cout' does not name a type
FahTCel.cpp:9:1: error: 'cin' does not name a type
FahTCel.cpp:12:1: error: 'nNFactor' does not name a type
FahTCel.cpp:15:1: error: 'nFahrenheit' does not name a type
FahTCel.cpp:17:1: error: 'cout' does not name a type
FahTCel.cpp:18:1: error: 'cout' does not name a type
FahTCel.cpp:20:1: error: expected unqualified-id before 'return'
FahTCel.cpp:21:1: error: expected declaration before '}' token
4

2 に答える 2

5

3 つのエラー:

  1. 正しいヘッダーは<iostream>. このプログラムには、他のヘッダーは必要ありません。

  2. using namespace std;ファイルに入れるかstd::coutstd::cin明示的に参照する必要があります。多くの C++ プログラマーは、2 つのオプションのどちらが優れているかについて意見が分かれています。(必要に応じて、名前空間にcinandだけを持ち込むこともできます。)cout

  3. プログラムは最後に行末記号を書き込みません。これにより、ほとんどの端末で出力が「見栄えが悪く」、コマンド プロンプトが出力と同じ行に表示されます。例えば:

ここに修正があります:

#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    ...
    cout << nFahrenheit << '\n';
    ...
}

注:およびmain以外の名前の引数を取ることは非常にまれです。名前を変更すると、他の人がコードを読むのが難しくなります。argcargv

于 2012-06-15T05:00:12.110 に答える
1

そのstd::coutまたは追加する必要がありますusing namespace std;

インクルードはすべきではあり< iostream>ません< ionstream.h>

于 2012-06-15T04:55:14.260 に答える