这是我第一次尝试将标题集成到我的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
^
答案 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 ++编程的更多信息