编写程序打印“Hello,world!”程序

时间:2013-05-30 17:50:16

标签: c++ metaprogramming

我刚刚开始阅读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中,但这也没有帮助。非常感谢任何帮助。

7 个答案:

答案 0 :(得分:11)

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

开始
cout << "#include <iostream>" << std::endl;

答案 1 :(得分:7)

您实际上并未在任何地方调用您的helloWorld功能。怎么样:

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

    cin.get();
    return 0;
}

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

void helloWorld(void);

这是working sample

答案 2 :(得分:3)

要调用函数,您需要:

  • 在使用前提供声明
  • 使用一对parantheses跟随它的名字,即使它没有任何参数。
  • 提供返回值,以便在表达式中使用它。

例如:

std::string helloWorld();

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

std::string helloWorld()
{
    return "Hello, world!";
}

答案 3 :(得分:0)

hellwoWorld();

而不是cout << helloWorld << endl;

答案 4 :(得分:0)

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

您希望hellowWorld是一个字符串,其内容是hello world程序。

答案 5 :(得分:0)

取决于您使用的编译器,您可能需要将helloWorld函数放在main之前。

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

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

答案 6 :(得分: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;
}