C ++标题和主要错误

时间:2016-07-03 23:54:37

标签: c++ header main

这是我第一次尝试将标题集成到我的C ++作业中。我们还没有在课堂上报道它,我只是野心勃勃。我和Clion一起工作。

如果不明显,我的目标是在标题中拼出两个函数,1从Celsius转换为Fahrenheit,另一个是相反的。

错误:

.flex-item {
  display: inline-block;
  width: 200px;
  height: 200px;
  background: blue;
  margin: 1em;
}

functions.h标题:

<div class="flex-container">
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
  <div class="flex-item"></div>
</div>

的main.cpp

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

2 个答案:

答案 0 :(得分:1)

确实存在集成头文件的问题。但是,编译错误与头文件无关。你有两个不同的问题。

编译器错误是因为您的if()语句不在任何函数内。一旦你问自己if()语句是什么函数,这是相当明显的?

(if语句无论如何都是错误的,因为很明显它应该使用==运算符而不是=赋值运算符,但这本身并不是编译错误的原因,但这也需要修复。)

就集成头文件而言:您在头文件中定义了整个函数。虽然从技术上讲,没有任何问题,但头文件只应用于声明函数和类。特别是当您开始了解头文件时,情况确实如此。

一旦你理解了头文件的工作方式,并且你知道更多的C ++,那么你就能够理解何时可以,不能将整个函数放入头文件,以及什么样的函数。

答案 1 :(得分:0)

程序以您不具备的if功能开始,一切都应该正常运行。您的=声明不在您的计划范围内,但无法正常工作

===之间存在差异:

==是做作,告诉某事等于某事

#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 } 用于比较。

在这里,将main.cpp文件替换为:

int main()

另一个问题,如果一个函数返回一些东西,你必须告诉函数返回哪个数据,例如void nameFunction()返回一个整数。如果没有返回,请写functions.h,因为在您的double文件中,您的函数实际上只返回任何内容,但您告诉您的程序他们返回double f2c() void f2c()。将其替换为set_title

提示:您真的应该了解有关C ++编程的更多信息