从 c++ 运行 python 脚本时出现问题
Issue running python script from c++
我正在尝试制作一个可以对python程序输出进行评分的程序。我错过了一些简单的东西,但我不断收到一个 seg 错误,因为我试图将输出变成一个字符串。如果我把它留一个 char*,工作正常,但我想要一个字符串,以便将来可以比较输出。 这是代码...
#include <iostream>
#include <string>
using namespace std;
string runPython(const char* filename) {
string cmd = "python " + string(filename);
char* buf;
FILE* in = popen(cmd.c_str(), "r");
fscanf(in,"%s", buf);
string res(buf);
pclose(in);
return res;
}
int main(int argc, char** argv) {
if(argc > 1) {
string res = runPython(argv[1]);
printf("%s", res.c_str());
}
else {
printf("e[31mNo File Submitted for Gradinge[0mn");
}
return 0;
}
您必须先分配缓冲区。
#include <iostream>
#include <string>
using namespace std;
#define MAX_READ 4096
string runPython(const char* filename) {
string cmd = "python " + string(filename);
char* buf = new char[MAX_READ]; // buffer allcoation
FILE* in = popen(cmd.c_str(), "r");
fscanf(in,"%s", buf);
string res(buf);
delete[] buf; // buffer release
pclose(in);
return res;
}
int main(int argc, char** argv) {
if(argc > 1) {
string res = runPython(argv[1]);
printf("%s", res.c_str());
}
else {
printf("e[31mNo File Submitted for Gradinge[0mn");
}
return 0;
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 从 c++ 运行 python 脚本时出现问题
- Arduino 脚本问题
- 我如何加载多个脚本而没有变量问题
- 使用 diff 脚本(在 C++ 中)打开输入文件时出现问题
- C 我的脚本有什么问题
- 运行我的SFML脚本的问题
- 同时运行c++和python脚本会导致问题
- 在字符串中查找问题的c++脚本
- 脚本-值类型-如何处理此问题