未在此范围内声明

' ' was not declared in this scope

本文关键字:声明 范围内      更新时间:2023-10-16

我是新手,我真的不理解"未在范围内声明"错误的含义。我尝试将这些声明为函数,并使用"来显示函数,但它没有编译和运行。以下是错误:

在函数"int main()"中:

[错误]未在此作用域中声明"random"

[错误]未在此作用域中声明"sound"

[错误]未在此作用域中声明"delay"

[错误]未在此作用域中声明"nosound"

[错误]未在此作用域中声明"BLINK"

[错误]未在此作用域中声明"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");
    }
}

看起来您有20世纪90年代的Turbo C++代码。Turbo C++的最后一个版本是在标准化C++之前发布的,所以它缺少了一些东西,而且做了一些奇怪的事情。它还包含一大捆自己的库,这些库在其他地方找不到。正如你所注意到的,现在很难找到像样的支持。

未在此作用域中声明"

编译器是否在说"这个名称尚未定义"。这通常是一个提示,提示您遗漏了一个标头。在这种情况下,您有所有正确的标题,但它们不包含这些Turbo C++专用函数。这意味着您需要找到现代编译器支持的替代方案。

random可替换为std::uniform_int_distribution

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

可以替换为win32呼叫提示

没有textattrcprintf你可能会过得更好。在GCC中重新实施这一眨眼将是一种痛苦。可能会有一个win32呼叫来完成这一切,但我从未尝试过,而且不知所措。