【发布时间】:2013-04-18 13:30:19
【问题描述】:
我想为温度生成一个随机数。我使用的代码如下:
int Temp()
{
// genreate random temperture
// initialize random seed:
srand ( time (NULL) );
// generate number between 1 and 100:
int t = rand() % 100 + 1;
std::cout << t << std::endl;
return t;
}
当程序运行时,它不会显示 1 到 100 之间的数字,而是显示以下内容:
010C1109
有人可以解释哪里出错了或者为什么出错了吗?
编辑:如果有人想知道我使用了以下内容:
#include <iostream>
#include <string>
#include <fstream>
#include <istream>
#include <ctime>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <map>
#include <cstdlib>
#include <cstring>
#pragma once
【问题讨论】:
-
也许您之前将
std::hex传递给了std::cout。 -
忘了提到我正在调用该函数。只是由于某种原因,它无法正确显示。我没用过std::hex,以前没用过
-
你能生产SSCCE吗? sscce.org
-
这与问题无关,但
srand应该在程序启动时调用一次,而不是在每次调用rand之前。 -
使用所提供代码的最简单程序(请参阅ideone.com/K5Ayw2)在 GCC 或 Visual Studio 中都不会输出类似的内容。有没有可能你正在做类似
std::cout << &t << std::endl;的事情?尝试按照@Agentlien 的建议创建一个 SSCCE 并将其发布。顺便说一句,您的主 cpp 文件中是否有该编译指示?如果是,为什么?
标签: c++ visual-studio-2010 visual-c++