std :: cin语句不能正常工作c ++

时间:2018-01-13 18:59:53

标签: c++ eclipse

我正在尝试在Celsius和Fahrenheit之间制作转换器,但我遇到了问题。当我运行我的代码时,输​​入" Celsius to Fahrenheit"它终止了。 这是我的代码:

t_up = pg.TextItem(cell, (255, 255, 255), anchor=(0, 0))
t_up.setPos(i + 0.5, -j + 0.5)

2 个答案:

答案 0 :(得分:0)

cin在遇到空格时会停止阅读ftc,因此它只会读取一个单词。请改用std::getline()。这应该有效:

#include <iostream>
#include <string>

int main() {
    std::string ftc;
    int f;
    int c;
    std::cout << "Celsius to Fahrenheit or Fahrenheit to Celcius ";
    std::getline(std::cin, ftc);
    if(ftc == "Celsius to Fahrenheit") {
        std::cout << "(c to f) Please provide input ";
        std::cin >> c;
        f = (c*1.8)+32;
        std::cout << f;
    } else if(ftc == "Fahrenheit to Celsius") {
        std::cout << "(f to c) Please provide input ";
        std::cin >> f;
        c = (f-32)*0.5556;
        std::cout << c;
    }
}

阅读本文以获取更多信息:http://www.cplusplus.com/doc/tutorial/basic_io/

答案 1 :(得分:0)

问题在于

if(ftc ==&#34; Celsius to Fahrenheit&#34;)尝试单词如

  

if(ftc ==&#34; Celsius&#34;)

作品!这样