为什么我的C ++代码中出现错误“预期输入名称”错误?

时间:2019-11-29 15:50:47

标签: c++ turbo-c++

我正在使用Turbo C编写以下代码,但出现1条错误和2条警告:

  1. 第30行警告:包含while的函数不会内联展开

  2. 第37行中的
  3. 错误:预期输入名称

  4. 第48行警告:包含while的函数不会内联展开

请帮助我。我猜编译器是Borland。

host1.dept1.domain.com
host2.domain.com
host3.domain3.com

2 个答案:

答案 0 :(得分:0)

您可以忽略两个警告,它们只是警告。您正在实现要内联的类方法,但是编译器不会内嵌带有while循环的内联方法,因此它们不会内联在最终的可执行文件中。没关系,内联只是一种优化,方法仍然可以使用。话虽这么说,您根本不需要在此代码中使用任何while循环。在计算值时,可以通过/(除法)和%(模)运算符来使用简单的整数算术。

不过,我的代码确实还有其他一些问题。

您需要将<iostream.h>更改为<iostream>,然后在cincout的前面加上std::

<conio.h>是非标准头,应该完全避免使用它。 clrscr()没有标准的C ++替代品,您必须诉诸特定于平台的API(对于Windows,请参见Clearing the Screen),但是您可以使用std::cin.get()替代{{1 }}。

getch()被卡在用户无休止的循环中,用户输入的值> =60。您没有像在min::convert()中那样在每次循环迭代中递减sec。 >

对于hour::convert1()宏和min算法,C运行时库和C ++标准库中已经使用了标识符min(),因此应重命名std::min()进行更独特的设计。

尝试以下方法:

min

答案 1 :(得分:0)

好的-我知道了。我在第38行中错误地键入了'public main'而不是'public min'。我也删除了while语句中的1并对其进行了一些修改,因为该代码在60秒以上的输入中没有显示输出。这是工作的经过修改的(某种程度上)代码。

#include <iostream.h>
#include <conio.h>

class second
{
protected:
    int sec;

public:
    second()
    {
        sec = 0;
    }

    void getsec()
    {
        cout << "\n enter the second time:"; 
        cin >> sec;
    }
};

class min : public second
{
protected:
    int mini;

public:
    min()
    {
        mini = 0;
    }

    void convert()
    {
        getsec();
        mini = sec / 60;
        sec %= 60;
    }
};

class hour : public min
{
protected:
    int hr;

public:
    hour()
    {
        hr = 0;
    }

    void convert1()
    {
        convert();
        while (mini >= 60)
        {
            mini = mini - 60;
            hr = hr + 1;
        }
        cout << "hr:" << hr << "\t mini" << mini << "\t sec" << sec;
    }
};

int main()
{
    clrscr();
    hour h;
    h.convert1();
    getch();
    return 0;
}

感谢所有人(尤其是@Remy Lebeau)的帮助。