【发布时间】:2012-02-12 04:55:16
【问题描述】:
我制作了一个简单的程序,允许用户选择一些骰子然后猜测结果...我之前发布了这段代码,但有错误的问题,所以它被删除了...现在我不能有任何错误甚至此代码上的警告,但由于某种原因,此警告不断弹出,我不知道如何修复它... “警告 C4244:'argument':从 'time_t' 转换为 'unsigned int',可能丢失数据”
#include <iostream>
#include <string>
#include <cstdlib>
#include <time.h>
using namespace std;
int choice, dice, random;
int main(){
string decision;
srand ( time(NULL) );
while(decision != "no" || decision != "No")
{
std::cout << "how many dice would you like to use? ";
std::cin >> dice;
std::cout << "guess what number was thrown: ";
std::cin >> choice;
for(int i=0; i<dice;i++){
random = rand() % 6 + 1;
}
if( choice == random){
std::cout << "Congratulations, you got it right! \n";
std::cout << "Want to try again?(Yes/No) ";
std::cin >> decision;
} else{
std::cout << "Sorry, the number was " << random << "... better luck next time \n" ;
std::cout << "Want to try again?(Yes/No) ";
std::cin >> decision;
}
}
std::cout << "Press ENTER to continue...";
std::cin.ignore( std::numeric_limits<std::streamsize>::max(), '\n' );
return 0;
}
这就是我想要弄清楚的,为什么我会收到这个警告: 警告 C4244:'argument':从 'time_t' 转换为 'unsigned int',可能会丢失数据
【问题讨论】:
-
time_t可能是 64 位类型,而int是 32 位。 -
而且,看在你信仰的任何神灵的份上,请选择 C 或 C++ 并坚持下去。包括
cstdlib和time.h让我想过来打你一巴掌:-) -
哈哈! Paxidiablo 我很想坚持使用 C++,但是这门课要求我从 C/C++ 开始,然后更多地迁移到 C++ 并尽可能地抛弃 C
-
不,它没有。您可以包含
ctime而不是time.h。 -
@aib 确实如此,但它本可以更明确地说明。
标签: c++