由于错误,C++ 代码不会 运行 在 Visual Studios 上,但未显示任何错误

c++ code won't run on Visual Studios due to errors but no errors are shown

我编写了一个简单的程序来使用给定的转换输出不同的温度单位。当我 运行 Visual Studios 上的代码时,它不会 运行 由于构建错误但没有显示错误。我见过类似的问题,但看不到任何解决我问题的答案。我也想知道我是否应该在主函数之前或之后声明变量。

#include <iostream>

using namespace std;

int fahrenheit, i=0;
float celsius, absolute_value;

main() {
    cout.width(20);
    cout << "Fahrenheit" << "Celsius" << "Absolute value\n";
    for (i = 0; i = 15; i += 1) {
        fahrenheit = i * 20;
        celsius = ((fahrenheit - 30) * 5) / 9;
        absolute_value = celsius + 273.15;
        cout.width(20); /*each item in next output will have width of at least 20*/
        cout << fahrenheit << celsius << absolute_value;
    }
    system("pause");
    return 0;
}

我修正了一些编码错误。我认为仍然存在一些逻辑错误,但现在代码编译和程序应该 运行

#include <iostream>
using namespace std;

int main() {
    cout.width(20);
    cout << "Fahrenheit" << "Celsius" << "Absolute value\n";
    for (int i = 0; i <= 15; i += 1) {
        int fahrenheit = i * 20;
        float celsius = ((fahrenheit - 30) * 5) / 9;
        float absolute_value = celsius + 273.15;
        cout.width(20); /*each item in next output will have width of at least 20*/
        cout << fahrenheit << ' ' << celsius << ' ' << absolute_value << '\n';
    }
    system("pause");
    return 0;
}

您缺少 iostream 的包含和 main 函数的 return 类型。我还将全局变量的声明移到了第一次使用变量的地方。 for 循环是一个无限循环。所以我把i = 15改成了i <= 15。也许你想要一个像 i < 15 这样的循环条件。我还在值之间添加了空格和换行符。

您需要将 int return 类型添加到 main 签名。

在 c++ 中,标准期望 main 函数为 return 和 int,就像它期望调用函数 main 一样。 return 最常用作退出代码,其中 0 通常表示成功执行且没有错误。

添加这个应该允许你的程序编译和运行。

#include <iostream>

int main() {
    std::cout << "Fahrenheit\t" << "Celsius\t\t" << "Absolute value\n";
    for (int i = 0; i <= 15; i++) 
    {
        const int fahrenheit = i * 20;
        const float celsius = ((fahrenheit - 32.0) * 5) / 9;
        const float absolute_value = celsius + 273.15;
        std::cout << fahrenheit << "\t\t" << celsius << "\t\t"<< absolute_value << "\n";
    }
    system("pause");
    return 0;
}

已解决的问题:

  • 主必returnint
  • 循环有赋值而不是比较
  • 变量不应该是全局的
  • using namespace std;应该避免
  • 华氏度到摄氏度的公式是错误的
  • 摄氏度是用整数算法计算的,尽管它是浮点数
  • const 正确性
  • 修饰:带制表符的格式化输出