Как получить имя_файла в C , если я выполнил свою программу с помощью ./program_name

#c

#c

Вопрос:

если бы я выполнял программу следующим образом: ./program_name

Я попытался использовать аргумент [1] в основном и открытом файле, например.

 int main(int argc, char *argv[]){
    ifstream file;
    file.open(argv[1],ios::in);
}
  

он не открывается

Комментарии:

1. argv[1] должно сработать. Покажите нам фрагмент, который воспроизводит ваш cas.e

2. Кроме того, что ./blabla < blablabla , по-вашему, делает?? Я уверен, что вы хотите ./blabla blablabla

3. Невозможно выполнить. Но реальный вопрос в том, почему вы этого хотите? Весь смысл ./aaa < bbb в том, что операционная система откроется bbb для вас. Если вы хотите открыть bbb себя, используйте ./aaa bbb и приведенный выше код должен работать.

4. Не по теме, но std::ifstream уже ios::in установлено. Нет смысла указывать направление для ifstream и ofstream .

5. @d4rk4ng31 система оператора должна открыть текстовый текст, и я могу просто продолжить

Ответ №1:

< Оператор cat вводит файл во ввод, и вы пытаетесь в своем коде получить его из параметра. Если вы хотите использовать ввод:

 #include <string>

int main() {
    std::string data;
    // here you read all the file
    std::getline(std::cin, data);
}