69,371
社区成员
发帖
与我相关
我的任务
分享
char * ch="5>6";
if(ch){
printf("True");
}else{
printf("False");
}
bc <<!
print 5 < 6
!
会输出 1
bc 配合管道就可以在C中动态计算表达的值。
#include <stdio.h>
int main(int argc, char* argv[])
{
char cmd[1024];
char const* fmt=
"bc <<!\n"
"%s\n"
"!";
sprintf(cmd, fmt, argv[1]);
FILE* pipe = popen(cmd,"r");
if(pipe)
{
int ch;
while((ch = fgetc(pipe)) != EOF){
fputc(ch, stdout);
}
pclose(pipe);
}
return 0;
}
用法:
./eval "5 < 6"
./eval " 100 * 5 + 7"