我最近在尝试用C运气,然后遇到了这个问题。
我有一个hello.c文件
代码1
#include<stdio.h>
#include<stdlib.h>
int main(){
printf("Hello World");
return 0;
}
我打开此文件并使用以下C程序(代码2)显示内容
代码2
#include<fcntl.h>
#include<stdio.h>
int main() {
FILE *fd;
char ch;
fd = fopen("/home/hello.c","r");
if( fd != NULL ) {
while((ch = getc( fd )) != EOF){
putchar(ch);
}
}
return 0;
}
但是,我希望此代码的输出为Hello World,即所读取的hello.c文件的输出。 怎么办?
答案 0 :(得分:3)
要运行c文件,首先需要将其编译为机器代码,然后执行。
要编译它:运行gcc源文件-o可执行文件
要运行,请执行:可执行文件
要在C语言中执行相同的操作,请使用system()
中的<stdlib.h>
函数
const char* tempFile = "./tempfile";
const char* sourceFile = "hello.c";
const char compileCommand[255];
sprintf(compileCommand, "gcc %s -o %s", sourceFile, tempFile);
system(compileCommand);
system(tempFile);
此代码未经测试。
答案 1 :(得分:1)
您的“ CODE 2”将必须调用C编译器来编译“ CODE 1”,然后使用system()
或操作系统提供的函数来运行它。
顺便说一句:它是int main(void)
或int main(int argc, char** argv)
,而不是int main()
。
答案 2 :(得分:1)
当前,在第二个程序中,您正在读取hello.c
文件。因此,CODE2的输出将为hello.c
的内容。即#include<stdio.h>...
对于您需要的内容,在CODE1中,您需要将程序的输出写入一个单独的文件中(例如a.txt
),然后在CODE2中读取a.txt
。
希望这是您进一步解决问题的充分提示。
答案 3 :(得分:0)
作为一般解决方案,您还可以尝试看看C解释器,例如Cling,然后尝试将其包含在项目中。