[英]Timeout error C++
#include <iostream>
// #include <conio>
using namespace std;
int main(){
int choice;
double temp, result;
std::cout <<"Enter temprature";
std::cin>>temp;
std::cout<<"Enter number between 1 or 2";
std::cin>>choice;
switch (choice){
case 1 :
result = (5*temp /9) - 32;
std::cout<<"answer is" <<result<<"C \n";
break;
case 2 :
result = (9/5*temp) + 32;
std::cout <<"answer" <<result<<"F";
break;
default : std::cout<<"Wrong number";
}
return 0;
}
我將此代碼用於基本轉換(切換練習),並且出現超時錯誤。 我是cpp的新手,所以如果您覺得這很簡單,請不要介意。
另外,如何在此程序中使用conio.h函數,如getch()? 我遇到這個錯誤:
Enter temprature
Timeout - Some common reasons for Timeout
Your Program may have a endless loop
您的代碼在MSVS 2015中編譯,並且似乎可以工作。
這個:
result = (5*temp /9) - 32;
是不正確的公式。 它應該是
result = 5 * (temp - 32) / 9;
這個:
result = (9/5*temp) + 32
;
遭受整數溢出。 它應該是:
result = (9.0 / 5 * temp) + 32;
要么
result = (9 * temp / 5) + 32;
如何在此程序中使用conio.h函數,如getch()?
conio.h
不是標准頭文件,而getch()
不是標准函數,因此盡管您可以在某些平台上使用它們,但在其他平台上將不可用。
嗯,終於找到了錯誤。 似乎您正在使用JDoodle ,並且未向stdin提供任何輸入! 解決起來很簡單。 只需單擊顯示Stdin Inputs...
的框,然后在第一行上寫下第一個提示的輸入,然后在第二行上寫下第二個提示的輸入。 這是一個示例屏幕截圖:
唯一的問題是每個輸出都在同一行上,因此您可能需要在代碼中添加幾行。
作為第二種解決方案,您可以打開交互模式(stdin輸入上方的按鈕),這實際上會在運行程序時要求您提供輸入。 此解決方案更有意義,因此可能會更好地滿足您的需求。
就conio.h
而言,除非您在Windows計算機上本地工作,否則您將無法使用該標頭中的函數(這很好,因為它們是非標准的)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.