2016-07-25 846 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調用來做這一切,但我從來沒有嘗試過,並且無所適從。