所以我已经设定了使用以下等式在C++中创建温度转换器的任务:
Celsius = (5/9)*(Fahrenheit – 32)
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经提出了这个问题(我从一开始就删除了10行评论,所以代码发布在第11行,如果这有任何意义)
#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using namespace std;
int main ()
{
float celsius;
float farenheit;
std::cout << "**************************" << endl;
std::cout << "*4001COMP-Lab5-Question 1*" << endl;
std::cout << "**************************" << endl << endl;
std::cout << "Please enter a temperature in farenheit: ";
std::cin >> farenheit >> endl;
std::cout << "Temperature (farenheit): " << endl;
std::cout << "Temperature (celsius): " << celsius << endl;
std::cin.get();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
每当我尝试运行这个程序时,每次都会出现一堆错误:
1> m:\ visual studio 2010\projects\week 5\week 5\main.cpp(26):error C2678:binary'>>':找不到运算符,它接受类型为'std :: basic_istream的左手操作数<_Elem,_Traits>'(或没有可接受的转换)
我已经尝试了所有我能想到的东西来摆脱这个错误,但它每次都会重新出现,任何关于如何解决这个问题的想法?
std::cin >> farenheit >> endl;
Run Code Online (Sandbox Code Playgroud)
该声明无效.>> endl从中删除.
std::cin >> farenheit ;
Run Code Online (Sandbox Code Playgroud)
此声明仅在您有效时才有效cout.像这儿.
std::cout << farenheit << endl ;
Run Code Online (Sandbox Code Playgroud)
原因是endl用于输出新行的结束字符.因此只有输出流接受它.你可以看一下更多的返回值和原型cin和cout这里.
http://en.cppreference.com/w/cpp/io