Когда я запускаю свой код с аргументами, я не могу прочитать файл, когда он находится в другом каталоге, например.Открыть файл в другом каталоге с классом FFI класса C++
В консоли
./exit first/data.dat second/data.dat
Код:
#include <fstream>
int main(int argc, char *argv[]){
const char *In1 = argv[1];
const char *In2 = argv[2];
ifstream fp1;
ifstream fp2;
fp1.open(In1);
fp2.open(In2);
if(!fp1 || !fp2){
printf("Error");
}
...
}
Кроме того, когда аргументы файлы в том же каталоге, как exececutable работает безупречно, как это:
./exit data1.dat data2.dat
Я пробовал использовать другой формат аргумента, например:
./exit first\data.dat second\data.dat
./exit first//data.dat second//data.dat
./exit first\\data.dat second\\data.dat
./exit .first/data.dat .second/data.dat
./exit ..first/data.dat ..second/data.dat
./exit ../first/data.dat ../second/data.dat
./exit ..//first//data.dat ..//second//data.dat
Etc.
Что-то не так с fstream
или как я даю аргументы или что-то другое?
Несвязанный: Именование вашей программы 'exit', вероятно, не очень хорошая идея. –
У вас есть разрешение на эти файлы, к которым вы пытаетесь получить доступ? Указанные вами пути не равны – nakiya
@nakiya да, у меня есть разрешение на чтение и запись этих файлов, и если вы ссылаетесь на './exit data1.dat data2.dat', это просто пример, потому что i не может назвать два равных файла в одном каталоге – nnn7867