以下是我的C++程序:
main.cpp
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream fileWriter;
fileWriter.open ("firstFile.cpp");
fileWriter << "#include <iostream>" << endl;
fileWriter << "int main() {" << endl;
fileWriter << "\tstd::cout << \"hello world\" << std::endl;" << endl;
fileWriter << "\treturn 0;" << endl;
fileWriter << "}" << endl;
fileWriter.close();
return 0;
}
执行上述程序后,它将创建一个名为“firstFile.cpp”的文本文件,其中包含以下代码:
firstFile.cpp
#include <iostream>
int main() {
std::cout << "hello world" << std::endl;
return 0;
}
执行该命令时,将在屏幕上打印“hello world”。
因此,我想在main.cpp文件中添加代码行,要求GCC编译刚创建的新firstFile.cpp。
我在Ubuntu和Windows平台上都使用GNU gcc。
可以从对编译器的调用中获取任何错误代码吗?如果不是为什么。
最佳答案
使用std::system命令并不太困难。另外raw string literals允许我们插入多行文本,这对于键入程序部分很有用:
#include <cstdlib>
#include <fstream>
// Use raw string literal for easy coding
auto prog = R"~(
#include <iostream>
int main()
{
std::cout << "Hello World!" << '\n';
}
)~"; // raw string literal stops here
int main()
{
// save program to disk
std::ofstream("prog.cpp") << prog;
std::system("g++ -o prog prog.cpp"); // compile
std::system("./prog"); // run
}
输出:
Hello World!
关于c++ - 如何以编程方式要求编译器在C++中编译文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36150706/