2016-07-03 8 views
-6

C++の宿題にヘッダーを統合しようとしています。私たちはまだ授業でそれをカバーしていない、私は野心的です。私はクリオンと働いています。C++のヘッダーとメインのエラー

明らかでない場合、私の目標はヘッダーに2つの関数を書き出すことです.1は摂氏から華氏に変換するために1つ、反対は逆です。

エラー:

/home/dylan/ClionProjects/tempconversion/main.cpp:18:1: error: expected unqualified-id before ‘if’ 
if (choice = 1); 
^ 
/home/dylan/ClionProjects/tempconversion/main.cpp:19:1: error: expected unqualified-id before ‘{’ token 
{ 
^ 
/home/dylan/ClionProjects/tempconversion/main.cpp:23:1: error: expected unqualified-id before ‘else’ 
else if (choice = 2) 
^ 
/home/dylan/ClionProjects/tempconversion/main.cpp:27:1: error: expected unqualified-id before ‘else’ 
else if (choice = 0) 
^ 
/home/dylan/ClionProjects/tempconversion/main.cpp:31:1: error: expected unqualified-id before ‘else’ 
else 
^ 

functions.hヘッダー:プログラムがmainあなたが持っていない機能を、すべてで始まる

// 
// Created by dylan on 7/3/16. 
// 

#ifndef TEMPCONVERSION_FUNCTIONS_H 
#define TEMPCONVERSION_FUNCTIONS_H 
#include <iostream> 
int choice; 
int degrees; 
double degrees2; 



double f2c() 
{ 
    std::cout << "Enter the degree count in whole numbers \n"; 
    std::cin >> degrees; 
    degrees2 = (degrees-32)/1.8; 
    std::cout << degrees2; 
} 

double c2f() 
{ 
    std::cout << "Enter the degree count in whole numbers \n"; 
    std::cin >> degrees; 
    degrees2 = (degrees * 1.8) + 32; 
    std::cout << degrees2; 
} 
#endif //TEMPCONVERSION_FUNCTIONS_H 

main.cppに

include <iostream> 
#include </home/dylan/ClionProjects/tempconversion/functions.h> 


using namespace std; 

int conMenu() 
{ 
    std::cout << "Would you like to: \n"; 
    std::cout << "1. Convert Celsius to Fahrenheit \n"; 
    std:: cout << "2. convert Fahrenheit to Celsius \n"; 
    std::cout << "0. Exit the program"; 
    std:: cout << "Please enter your choice: "; 
    std::cin >> choice; 

} 

if (choice = 1); 
{ 
double c2f(); 
} 

else if (choice = 2) 
{ 
double f2c(); 
} 
else if (choice = 0) 
{ 
return 0; 
} 
else 
{ 
return 0; 
} 
+0

あなたは 'main()'関数を実装していません。あなたはそれから始めなければなりません。 – owacoder

+0

'if'文は関数でのみ使用できます。おそらくあなたはあなたが定義していない 'main'にそれらを入れることを意図しました。 –

+0

'=='の代わりに '='です。 'if()'の後のセミコロン。 'main()'はありません。 '.h'の変数。 if文の中で関数宣言のように見えるもの。先に進もうとしたことをお祝いしましたが、ここではあまりにも多くの間違ったことがあります。 – John3136

答えて

0

機能しているはずです。 comparaisonのために使用され、

=気取りで何か

==に等しくなるように何かを伝える:あなたのif文は

===の間に違いがあり

が動作しませんどのあなたのプログラムの外にあります。

ここでは、それとあなたのmain.cppにファイルを置き換える:

#include <iostream> 
#include </home/dylan/ClionProjects/tempconversion/functions.h> 


using namespace std; 

int main() // every program in C++ MUST HAVE AN int main() function 
{ 
    std::cout << "Would you like to: \n"; 
    std::cout << "1. Convert Celsius to Fahrenheit \n"; 
    std:: cout << "2. convert Fahrenheit to Celsius \n"; 
    std::cout << "0. Exit the program"; 
    std:: cout << "Please enter your choice: "; 
    std::cin >> choice; 

    if (choice == 1); // is choice equal to 1 ? 
    { 
     double c2f(); 
    } 

    else if (choice == 2) // is choice equal to 2 ? 
    { 
     double f2c(); 
    } 
    else if (choice == 0) // is choice equal to 0 ? 
    { 
     return 0; 
    } 

    return 0; 
// in every case, because it is "int main()" the program should return an integer, here is 0 

} 

もう一つの問題は、関数の戻り何かあれば、あなたは整数を返すint main() exempleのために、データを返す関数を伝える必要があります。何も返されない場合は、functions.hファイルに関数が実際に何も返さないが、doubleのようにdouble f2c()を返すことをプログラムに伝えているので、void nameFunction()と書いてください。それらをvoid f2c()に置き換えます。

ヒント:あなたは本当に

1

あなたのヘッダファイルを統合するとの問題を持っていることは事実であるプログラミングC++についての詳細を学ぶ必要があります。ただし、コンパイルエラーはヘッダーファイルとは関係ありません。ここでは2つの異なる問題があります。

if()ステートメントが関数内にないため、コンパイラエラーが発生します。どのような機能があるのか​​をあなた自身に問うと、これはかなり明白です。if()声明の一部ですか?

(代入演算子=の代わりに==演算子を使用しているはずですが、それ自体はコンパイルエラーの原因ではありませんが、これが必要です固定も)。

ヘッダーファイルを統合する限り、ヘッダーファイル内に関数全体を定義しています。技術的には何も問題はありませんが、ヘッダーファイルは関数とクラスを宣言するためにのみ使用してください。これは、特にヘッダーファイルについて学習するときに当てはまります。

ヘッダーファイルの仕組みを理解し、C++をもっと知っていれば、ヘッダーファイルに関数全体を入れることができる、できない、そしてどんな種類の関数を理解することができます。

関連する問題