Почему fstream вызывает ошибку сегментации при открытии файла в формате? - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть следующий код

#include <iostream>
#include <string>
#include <fstream>
#include <vector>
#include <unistd.h>
using namespace std;

int main()
{
  ifstream asmfile("asmcode",ifstream::in);

  if(!asmfile)
  {
     cout << "error" << endl;
  }

  return 0;
}

, где "asmcode" - это просто текстовый файл, который существует в том же каталоге, что и основной файл. Это буквально пустой файл, который создается с помощью bash "> dummy.txt".

Я запускаю это на Ubuntu Linux 18.04, используя g ++ 9.2.1 в качестве компилятора.

Это печатает «ошибку» на моем компьютере. Я понятия не имею, почему файл не открывается. Я также заметил, что если я добавляю формат файла после имени файла, я получаю ошибку сегментации, которая является еще более странной.

Что здесь не так?

1 Ответ

1 голос
/ 16 февраля 2020

Вы должны добавить расширение файла, иначе программа не сможет различить 2 файла с одинаковым именем.

ifstream asmfile("asmcode.txt", ifstream::in);

...