从'到'& # 39; time_t * & # 39;又一个错误
Invalid conversion from 'int' to 'time_t*' AND another error
我得到了以下错误:
我的代码是:错误:从'int'到'time_t*'的转换无效
错误:初始化'time_t time(time_t*)'的参数1
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <time.h>
using namespace std;
int main()
{
char Grid[5][5];
Grid[0][0] = 'P';
Grid[0][1] = '-';
Grid[0][2] = '-';
Grid[0][3] = '-';
Grid[0][4] = '-';
Grid[1][0] = '-';
Grid[1][1] = 'T';
Grid[1][2] = '-';
Grid[1][3] = '-';
Grid[1][4] = '-';
Grid[2][0] = '-';
Grid[2][1] = '-';
Grid[2][2] = '-';
Grid[2][3] = '-';
Grid[2][4] = '-';
Grid[3][0] = '-';
Grid[3][1] = '-';
Grid[3][2] = '-';
Grid[3][3] = 'T';
Grid[3][4] = '-';
Grid[4][0] = '-';
Grid[4][1] = '-';
Grid[4][2] = '-';
Grid[4][3] = '-';
Grid[4][4] = 'X';
cout<<"P = Player (you)"<<endl<<
"T = Trap (ouch!)"<<endl<<
"X = Treasure (X marks the spot)"<<endl<<
"Tell P where to go by using the commands 'right','left','up','down'."<<endl<<endl;
string command;
int x = 0;
int y = 0;
int a;
int b;
srand(time(a));
srand(time(b));
int enemy1 = rand()%4;
do
{
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<Grid[0][0]<<Grid[0][1]<<Grid[0][2]<<Grid[0][3]<<Grid[0][4]<<endl<<
Grid[1][0]<<Grid[1][1]<<Grid[1][2]<<Grid[1][3]<<Grid[1][4]<<endl<<
Grid[2][0]<<Grid[2][1]<<Grid[2][2]<<Grid[2][3]<<Grid[2][4]<<endl<<
Grid[3][0]<<Grid[3][1]<<Grid[3][2]<<Grid[3][3]<<Grid[3][4]<<endl<<
Grid[4][0]<<Grid[4][1]<<Grid[4][2]<<Grid[4][3]<<Grid[4][4]<<endl;
cout<<"Your command: ";
cin>>command;
cout<<endl;
if(command=="up")
{
Grid[(x-1)][y] = 'P';
x--;
Grid[(x+1)][y] = '-';
}
if(command=="down")
{
Grid[(x+1)][y] = 'P';
x++;
Grid[(x-1)][y] = '-';
}
if(command=="right")
{
Grid[x][(y+1)] = 'P';
y++;
Grid[x][(y-1)] = '-';
}
if(command=="left")
{
Grid[x][(y-1)] = 'P';
y--;
Grid[x][(y+1)] = '-';
}
if(x==4 && y==4)
{
if(command=="down")
{
Grid[4][4] = 'P';
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<Grid[0][0]<<Grid[0][1]<<Grid[0][2]<<Grid[0][3]<<Grid[0][4]<<endl<<
Grid[1][0]<<Grid[1][1]<<Grid[1][2]<<Grid[1][3]<<Grid[1][4]<<endl<<
Grid[2][0]<<Grid[2][1]<<Grid[2][2]<<Grid[2][3]<<Grid[2][4]<<endl<<
Grid[3][0]<<Grid[3][1]<<Grid[3][2]<<Grid[3][3]<<Grid[3][4]<<endl<<
Grid[4][0]<<Grid[4][1]<<Grid[4][2]<<Grid[4][3]<<Grid[4][4]<<endl;
cout<<"You win!"<<endl;
}
if(command=="right")
{
Grid[4][4] = 'P';
cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;
cout<<Grid[0][0]<<Grid[0][1]<<Grid[0][2]<<Grid[0][3]<<Grid[0][4]<<endl<<
Grid[1][0]<<Grid[1][1]<<Grid[1][2]<<Grid[1][3]<<Grid[1][4]<<endl<<
Grid[2][0]<<Grid[2][1]<<Grid[2][2]<<Grid[2][3]<<Grid[2][4]<<endl<<
Grid[3][0]<<Grid[3][1]<<Grid[3][2]<<Grid[3][3]<<Grid[3][4]<<endl<<
Grid[4][0]<<Grid[4][1]<<Grid[4][2]<<Grid[4][3]<<Grid[4][4]<<endl;
cout<<"You win!"<<endl;
}
}
}
while(Grid[4][4] != 'P');
return 0;
}
我得到这些错误的行是第45行(和46行,但它是相同的错误)。下面的代码在第45行:
srand(time(a));
为什么要这样使用time
?函数声明如下:
time_t time ( time_t * timer )
传递给它一个int
而不是一个指向time_t
的指针是一个明确的错误,编译器正确地报错。
假设您所需要的只是srand
的种子,只需使用time(NULL)
。如果您确实需要在参数中设置该值,则将a
和b
变量设置为time_t
类型,并使用time(&a)
。关于time
的更多信息,请阅读
我几乎肯定你想调用srand(time(NULL))
,只做一次。它为伪随机数生成器设置种子,并且使用实际时间是最常见的情况(每次运行应用程序时都不同,因此生成的数字序列是)。要获得实际时间,请调用time(NULL)
;如果你想把时间值存储在特定的time_t变量中,你可以传递它的指针而不是NULL。
srand(time(NULL));
和下面的代码:
time_t now;
time(&now);
srand(now);
甚至这段代码:
time_t now;
srand(time(&now));
相关文章:
- 试图修复一个错误,该错误不会让我开始编程其余部分
- MSVC 无法根据模板参数进行数学运算,这是一个错误吗?
- 我正在尝试一个傻瓜 C++ 练习,我遇到了一个错误,说类 'GraduateStudent' 没有任何名为 'advisor' 的字段
- 零四元数和任何向量都不为零的特征积,这是一个错误吗?
- 处理程序的模块列表中有一个错误的模块"WebSocketModule"
- 在 C++ 中使用 "transform" 会给出一个错误,指出这未在作用域中声明
- 在Cython中使用C库时,我遇到了一个错误
- 我需要帮助创建一个评分系统,但它一直给我一个错误,注释掉的整数是给我带来麻烦的部分
- 我试图用c++编写递归fibonacci序列,但当我编译时,我遇到了一个错误
- 从system()调用G++会返回一个错误
- 在Visual Studio中,与std::async一起使用时不调用"thread_local"变量"析构函数,这是一个错误吗?
- 我收到一个错误无效的操作数,类型为 const char [42] 和二进制"运算符+"的双倍数
- 使用声明:GCC 和 Clang 的另一个错误?
- 全球免费给出一个错误.调试器不解释
- 相对于继承的构造函数,gcc 编译器是否还有一个错误?
- 为什么直接传递"this"指针来存档是一个错误,而另一个相同类型的指针是可以的?
- 为什么第三板有一个错误
- 如何编写一个错误结构,该结构可以包含不同的强键枚举作为错误代码
- Comeau vs g++ [又一个错误]
- 从'到'& # 39; time_t * & # 39;又一个错误