2016-07-25 200 views
-4

我是新手,我实际上无法理解“未在范围内声明”错误的含义。我试图将这些声明为函数,也使用“”来显示函数,但它没有编译和运行。下面是错误:''未在此范围内声明

在函数“诠释主()”:

[错误]“随机”并不在此范围内声明

[错误]“声音”是在此范围内声明

[错误] '延迟' 在此范围内未声明

[错误]'以上三个参数的未在此范围内声明

[错误] 'BLINK' 不是declar编辑在此范围内

[错误]“textattr”在此范围内未声明

#include<stdio.h> 

#include<iostream> 

#include<dos.h> 

#include<conio.h> 

#include<stdlib.h> 

using namespace std; 
int main() 
{ 
    int count=50; 
    while(count--) 
    { 
    sound(90*random(10)); 
    delay(100); 
    nosound(); 
    textattr(random("16")+'a'+BLINK); 
    cprintf("KSHITIJ"); 
    } 
} 
+0

你想要的函数叫'rand()'而不是'random()'。 –

+0

@πάνταῥεῖ看起来OP正在使用一些外部库,假设字符串输入为'random',这可能是种子,我会说这是lib的一部分。也许某种类型的dos库? –

+1

一旦你得到这个运行,你也会遇到:http://stackoverflow.com/questions/9459035/c-rand-gives-same-number-when-running-process – NathanOliver

回答

0

看起来你从早在20世纪90年代具有的Turbo C++代码。 Turbo C++的最后一个版本是在标准化的C++之前发布的,因此它缺少了一些东西,而其他的东西有点奇怪。它还包含一大堆在其他地方无法找到的自己的库。当你注意到这些天很难找到像样的支持。

“”在此范围

是你的编译器说,未声明“这个名称尚未确定。”通常会提示您错过了标题。在这种情况下,您拥有所有正确的标题,但它们不包含这些Turbo C++唯一的函数。这意味着您需要找到现代编译器支持的替代方案。

random可以std::uniform_int_distribution

sound(90*random(10)); 
delay(100); 
nosound(); 

更换可与the win32 call beep

textattr和更换cprintf你可能会更好过没有。在GCC重新实施后,这种眨眼将会是一种痛苦。可能有一个win32调用来做这一切,但我从来没有尝试过,并且无所适从。