2016-07-03 2 views
-6

헤더를 내 C++ 숙제에 통합하려는 것은 이번이 처음입니다. 우리는 아직 수업에서 그것을 다루지 않았고, 나는 단지 야심적이다. 나는 Clion과 일하고있다.C++ 헤더 및 메인 오류

명백하지 않은 경우, 목표는 헤더에서 두 가지 기능을 지정하는 것입니다. 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 헤더 :

// 
// 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 프로그램은 main이없는 기능과 모든 것을 시작

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 파일에서 함수가 실제로 아무것도 반환하지 않지만 doubledouble f2c()과 같이 반환한다고 프로그램에 알리기 때문에 void nameFunction()을 작성하십시오. 그것들을 void f2c()으로 바꿉니다.

: 당신이 정말

1

당신이 헤더 파일을 통합하는 문제가있는 것은 사실이다 프로그래밍 C++에 대한 자세한 내용을 배워야한다. 그러나 컴파일 오류는 헤더 파일과 관련이 없습니다. 여기에는 두 가지 문제가 있습니다.

if() 문이 어떤 함수에도 포함되어 있지 않기 때문에 컴파일러 오류가 발생합니다. 이것은 어떤 기능이 if() 진술에 속하는지 스스로에게 물으면 꽤 명백합니다.

(할당 연산자가 =이 아닌 == 연산자를 사용해야한다는 점에서 if 문은 잘못되었지만 그 자체로 컴파일 오류가 발생하지는 않지만 if 문은 틀림없이 필요합니다. 고정도).

헤더 파일을 통합하는 한 : 헤더 파일에서 전체 기능을 정의합니다. 기술적으로는 아무 문제가 없지만 헤더 파일은 함수와 클래스를 선언 할 때만 사용해야합니다. 이것은 특히 헤더 파일에 대해 배우기 시작할 때 사실입니다.

헤더 파일의 작동 방식을 이해하고 C++을 더 많이 알게되면 전체 기능을 헤더 파일에 넣을 수 있는지, 할 수 없는지, 그리고 어떤 종류의 기능을 사용할 수 있는지를 알 수 있습니다.