Кстати, я знаю, что это дубликат, , но я не могу найти ответ!
Я пытаюсь создать файл C ++, который компилирует и запускает другой файл C ++ и проверяет, является ли вывод правильным или неправильным (я знаю, что это немного странно).
(папка Desktop содержит eval.cpp и a.out + папка «test»
папка тестирования содержит файлы main.cpp, tytytyt.in, tytytyt.out, tytytyt.ok)
eval.cpp
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
#include <string>
using namespace std;
ifstream fa("~/Desktop/test/tytytyt.out");
ifstream fok("~/Desktop/test/tytytyt.ok");
string filename;
int a, ok;
int main()
{
cout << "In ce folder se afla fisierul pe care ai dori sa testezi? \n";
cin >> filename;
string str = "g++ -o a.out" + filename;
const char * command = str.c_str();
cout << "Compilare sursa cu ajutorul comenzii " << command << " ... \n";
system(command);
cout << "Rulare fisier... \n";
system("~/Desktop/test/a.out");
fa >> a;
fok >> ok;
if(a == ok) cout << "Corect!";
else cout << "Incorect!";
return 0;
}
Когда я запускаю ~/Desktop$ g++ eval.cpp
, он создает файл a.out
.
Тогда я бегу ~/Desktop$ ./a.out
.
Когда моя программа печатает In ce folder se afla fisierul pe care ai dori sa testezi?
, а я пишу ~/Desktop/test/main.cpp
, программа печатает
Compilare sursa cu ajutorul comenzii g++ ~/Desktop/test/main.cpp ...
Rulare fisier...
, а затем появляется ошибка: sh: 1: /home/steven/Desktop/test/a.out: not found
, и если я проверяю тест папка, файл a.out
не существует.
Может ли кто-нибудь мне помочь?
`