c ++ читает из файла и совпадает с идентификатором

0

Я новичок в C++ и пытаюсь задушить основы. Я пытаюсь прочитать ввод файла и распечатать все в файле и, самое главное, сопоставить идентификатор элемента с введенным значением и удалить строку в моем файле, которая совпадает с идентификатором.

Теги:

2 ответа

0

Если ваш формат файла исправлен (int : string : int)

вы можете найти/сопоставить "id" следующим образом:

cout << "Input the id that you wish to find" << endl;
cin >> input;

char ch; // for colon (:)
while(readFile >> id >> ch >> itemName >> ch >> quantity )
{
   if (input == id) {
     //cout << "valid Input";
    }

}

readFile .close();
0

У вас две проблемы с кодом.

Во-первых, оператор ввода >> отделяется от пробелов, а не от произвольных символов, поэтому ваш разбор входного файла неверен.

Вы можете использовать, например, std::getline чтобы получить отдельные поля в виде строк, а затем преобразовать их в правильные типы (либо в std::istringstream либо используя, например, std::stoi).


Вторая проблема заключается в том, что вы читаете во всех данных, но сохраняете только последнюю прочитанную строку. Вам нужно сохранить данные в структуре, помещенной в вектор, а затем выполнить поиск по этому вектору.

  • 0
    Хорошо, спасибо.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню