Допустим, я хочу написать и прочитать это значение
Предположим, я хочу написать
SEAT:
NAME:
CLASS:
DEPR. TIME:
ARRV. TIME:
FROM:
TO:
====================== Таким образом, именно так будет выглядеть файл file.doc =========
SEAT NAME CLASS DEPARTURE TIME ARRIVAL TIME FROM DESTINATION
23 Janes Rowan ECONOMY 11:30 17:30 NY CHINA
24 Robert Sulliman FIRST 12:30 18:30 LONDON JAPAN
================================================== ===============================
И я хочу прочитать
Пожалуйста, введите ваше имя: Джейн Роуэн
============================= отобразить на экране ================== =================
SEAT NAME CLASS DEPARTURE TIME ARRIVAL TIME FROM DESTINATION
23 Janes Rowan ECONOMY 11:30 17:30 NY CHINA
================================================== ==============================
Как предположить, что мой программный код на C ++ будет? Потому что я столкнулся с проблемой при написании (сохранить в file.doc) и поиске строки с двумя словами и более, а также для отображения всей строки на экране. А также я хочу знать, как удалить всю строку, т.е.
Пожалуйста, введите ваше имя, чтобы отменить билет: Джейн Роуэн
Таким образом, он удалит всю строку
Я новичок, поэтому надеюсь, что кто-нибудь может мне помочь. Большое спасибо XD!
Этот код соответствует вашим спецификациям, как это было дано (я думаю). Но это вряд ли то, что вам нужно для вашего задания. Но, возможно, здесь есть некоторые идеи, которые вы можете использовать.
Мой входной файл, db.txt:
SEAT NAME CLASS DEPARTURE TIME ARRIVAL TIME FROM DESTINATION
23 Janes Rowan ECONOMY 11:30 17:30 NY CHINA
24 Robert Sulliman FIRST 12:30 18:30 LONDON JAPAN
Мое решение, aviation.cpp:
#include <algorithm>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main() {
// Read the database.
std::vector<std::string> database;
std::string str;
std::ifstream fin("db.txt");
while (std::getline(fin, str)) {
database.push_back(str); }
// Print the database.
for (const auto& r : database) {
std::cout << r << "\n"; }
// Find.
std::cout << "Find name: ";
std::string find_query;
std::getline(std::cin, find_query);
std::cout << database[0] << "\n";
for (const auto& r : database) {
if (r.find(find_query) != std::string::npos) {
std::cout << r << "\n"; } }
// Delete.
std::cout << "Delete name: ";
std::string delete_query;
std::getline(std::cin, delete_query);
database.erase(std::remove_if(std::begin(database), std::end(database),
[&](const std::string& s) {
return s.find(delete_query) != std::string::npos; }),
std::end(database));
for (const auto& r : database) {
std::cout << r << "\n"; }
}
Протестировано с GCC 4.8.2: g++ -Wall -Wextra -std=c++0x airline.cpp
Других решений пока нет …