3

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

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

extern int foo;
无效 print_foo();
无效打印(整数);

#include my.hstd_lib_facilities.h的源代码文件my.cpp定义print_foo()以使用cout打印foo 的值,并定义print(int i)以使用cout打印i的值。将#include my.h 的源代码文件use.cpp定义main()以将foo的值设置为7并使用print_foo()打印它,并使用print()打印值 99 。请注意,use.cpp

#include std_lib_facilities.h因为它不直接使用任何这些设施。

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

4

1 回答 1

1
{ char cc; cin>>cc; }

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

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

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

于 2012-07-30T13:35:35.763 回答