2

我刚开始阅读 Accelerated C++,当我遇到这个练习时,我正在尝试完成练习:

0-4. Write a program that, when run, writes the Hello, world! program as its output.

所以我想出了这个代码:

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    cout << helloWorld << endl;

    cin.get();
    return 0;
}

void helloWorld(void)
{
    cout << "Hello, world!" << endl;
}

我不断收到错误'helloWorld' : undeclared identifier。我认为我应该做的是为 helloWorld 创建一个函数,然后调用该函数作为输出,但显然这不是我需要的。我也尝试过helloWorld()输入 main ,但这也没有帮助。任何帮助是极大的赞赏。

4

7 回答 7

11

我阅读教科书练习的方式是,它希望你编写一个程序,将另一个C++ 程序打印到屏幕上。cout现在,您需要使用 s包围的大量语句和文字字符串来执行此操作""。例如,您可以从

cout << "#include <iostream>" << std::endl;
于 2013-05-30T17:52:04.183 回答
7

你实际上并没有在任何地方调用你的helloWorld函数。怎么样:

int main()
{
    helloWorld(); // Call function

    cin.get();
    return 0;
}

注意:如果你想在定义之前使用它,你还需要在顶部声明你的函数原型。

void helloWorld(void);

这是一个工作示例

于 2013-05-30T17:51:52.043 回答
3

要调用函数,您需要:

  • 在使用前提供声明
  • 即使它没有任何参数,也要在其名称后面加上一对括号。
  • 提供返回值以便在表达式中使用它。

例如:

std::string helloWorld();

int main()
{
   cout << helloWorld() << endl;
   ...
}

std::string helloWorld()
{
    return "Hello, world!";
}
于 2013-05-30T17:51:48.137 回答
0
hellwoWorld();

代替cout << helloWorld << endl;

于 2013-05-30T17:52:00.317 回答
0

在您的主函数中,helloWorld不是声明的变量。

你想hellowWorld成为一个字符串,其内容是 hello world 程序。

于 2013-05-30T17:52:47.823 回答
0

根据您使用的编译器,您可能需要像这样将 helloWorld 函数放在 main 之前。

void helloWorld(void)
{
    .....
}
int main()
{
    .....
}

我使用视觉工作室,我被迫这样做....

于 2013-05-30T17:55:14.240 回答
0

您真的不需要在底部定义的 helloworld 函数。像这样的事情应该这样做。

#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    //cout will output to the screen whatever is to the right of the insertion operator, 
    //thats the << to it's right. 
    //After "hello world" the insertion operator appears again to insert a new line (endl)
    cout << "hello world" << endl;

    //cin.get()  waits for the user to press a key before 
    //allowing the program to end
    cin.get();
    return 0;
}
于 2013-05-30T17:55:24.380 回答