Чтение файла из текущего каталога с использованием ifstream и QtCreator - PullRequest
4 голосов
/ 16 января 2012

Я использую Qt Creator для простого проекта C ++ без библиотек Qt.

Я пытаюсь открыть файл, подобный этому:

fopen("text.txt", "r");

или

ifstream fin;
fin.open("text.txt");

Но это не работает только с именем файла, как в Visual Studio, мне нужно указать полный путь для открытия файла ...

Кто-нибудь знает, почему это так?и как я могу обратиться к текущему каталогу без использования Qt libs?

Ответы [ 3 ]

2 голосов
/ 16 января 2012

Будет; ваш код в порядке. Но, как намекают другие ответы, вам нужно убедиться, что вы запускаете его в том каталоге, который вам нужен.

На левой панели выберите «Проекты», затем (на вкладках вверху) «Запустить настройки», и он покажет вам, откуда запускается исполняемый файл, в поле с надписью «Рабочий каталог». Я думаю, что по умолчанию это каталог над папками выпуска и отладки.

2 голосов
/ 16 января 2012

Вы можете использовать QDir::current() для проверки того, какой рабочий каталог вам нужен.Без Qt вы можете использовать решение TomA, связанное с .

настройки запуска , позволяющие настроить его для запуска приложения из IDE.

0 голосов
/ 16 января 2012

Разница между Visual Studio и Qt Creator может заключаться в том, что

  1. Каждый запускает двоичный файл программы в своем подкаталоге структуры вашего проекта.
  2. Один действительно копирует файл text.txt как часть вашего проекта в тот же выходной каталог, что и двоичный файл, а другой нет.

Попробуйте получить текущий каталог, используя this , а затем посмотрите, действительно ли он содержит файл.

...