【问题标题】:stroustrup ppp chapter 8 drill headersstroustrup ppp 第 8 章钻头
【发布时间】:2012-07-27 02:42:09
【问题描述】:

对于那些已经阅读并完成了 stroustrup 的“编程原理和使用 c++ 的练习”中的练习的人,我在进行第 8 章练习的第一部分时遇到了麻烦。我在这部分遇到的主要问题是接近问题的结尾,它指出“在 Windows 上,您需要同时拥有 use.cppmy.cpp项目并在 use.cpp 中使用 { char cc; cin>>cc; } 才能看到您的输出。”如果我们不允许 std_lib_facilities.h 用于 use.cpp,我们该如何实现?
另外,当它说“在 Windows 上,您需要在项目中同时拥有 use.cppmy.cpp”时,它究竟是什么意思?如果我想深入研究,请告诉我。

创建三个文件:my.hmy.cppuse.cpp。头文件 my.h 包含

extern int foo;
void print_foo();
void print(int);

#include的源代码文件my.cpp my.hstd_lib_facilities.h,定义 print_foo() 以使用 cout 打印 foo 的值,以及print(int i) 使用 cout 打印 i 的值。

#include my.h 的源代码文件 use.cpp 定义 ma​​in() 以设置 set foo 的值变为 7 并使用 print_foo() 打印它,并使用 print() 打印值 99强>。请注意,use.cpp#include std_lib_facilities.h,因为它不直接使用任何这些工具。

编译并运行这些文件。在 Windows 上,您需要在项目中同时拥有 use.cppmy.cpp 并使用 { char cc;辛>>cc; }use.cpp 中查看您的输出。

【问题讨论】:

  • 嘿,我知道这是一篇旧帖子,但您有没有发现问题所在?我什至无法让“std_lib_facilities.h”正常工作,如下所述:reddit.com/r/cpp_questions/comments/f199ww/… 但现在我在同样的练习中遇到了麻烦,让 my.cpp 正确识别其标题。

标签: c++


【解决方案1】:
{ char cc; cin>>cc; }

用于从标准输入读取字符(等待输入)。在 VS 和其他 IDE 中,您需要这样做只是为了查看程序的输出,否则 cmd 窗口将关闭得太快而无法读取输出。你不需要std_lib_facilities.h,只需要include <iostream>,并在main函数的末尾写上上面的代码。

编译并运行这些文件。在 Windows 上,您需要同时拥有 在项目中使用.cpp 和 my.cpp 并使用 { char cc;辛>>cc; } 在 use.cpp 能够看到你的输出。

要在 Windows、VS 或其他 IDE 中编译,您需要包含这两个源文件。在 linux 上你也需要这两个文件,但是,编译过程(makefile 或 g++)明确需要这些文件,因此对于 windows,这些文件被强调。

【讨论】:

  • 对我来说,它说undefined reference to 'foo'。我正在使用具有 c++14 标准的 g++ 编译器。应该是这样的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 2014-01-30
  • 1970-01-01
相关资源
最近更新 更多