C++ 为字符串插入文本

C++ 为字符串插入文本,c++,string,visual-studio,search,C++,String,Visual Studio,Search,我正在写一个小程序,用户可以在那里搜索美国的国家公园。我有他们所在州的所有公园和其他特色。目前,我只有一个用户可以看到所有的公园,以及他们所在的州、成立的年份和他们的网站。但是,我希望用户能够按州搜索公园,但我很难确定如何在文本文件中搜索州字符串并仅显示那些公园。这是我到目前为止所拥有的` #include<iostream> #include<cmath> #include<iomanip> #include<string> #include &

我正在写一个小程序,用户可以在那里搜索美国的国家公园。我有他们所在州的所有公园和其他特色。目前,我只有一个用户可以看到所有的公园,以及他们所在的州、成立的年份和他们的网站。但是,我希望用户能够按州搜索公园,但我很难确定如何在文本文件中搜索州字符串并仅显示那些公园。这是我到目前为止所拥有的`

#include<iostream>
#include<cmath>
#include<iomanip>
#include<string>
#include <fstream>

using namespace std;

int main()
{
    string parkname = "";
    string city = "";
    string state = "";
    string phone = "";
    string website = "";
    string famousfor = "";
    int yearestablished = 0;
    double dailyfee = 0;
    int sqyards = 0;
    char hikingtrails = ' ';
    char skiing = ' ';
    char wildernesscamp = ' ';
    char canoing = ' ';
    char kayaking = ' ';
    char guidedtours = ' ';
    char allseason = ' ';

    ifstream inFile;
    inFile.open("nationalparks.txt");
    if (inFile.is_open())
    {
        cout << "Park Name" << setw(25) << "City" << setw(31) << "State" << setw(41) << "Year Established" << setw(19) << "Website" << endl;
        getline(inFile, parkname, '#');
        getline(inFile, city, '#');
        getline(inFile, state, '#');
        inFile >> yearestablished;
        inFile.ignore();
        getline(inFile, phone, '#');
        getline(inFile, website, '#');
        inFile >> dailyfee;
        inFile.ignore();
        inFile >> sqyards;
        inFile.ignore();
        inFile >> hikingtrails;
        inFile.ignore();
        inFile >> skiing;
        inFile.ignore();
        inFile >> wildernesscamp;
        inFile.ignore();
        inFile >> canoing;
        inFile.ignore();
        inFile >> kayaking;
        inFile.ignore();
        inFile >> guidedtours;
        inFile.ignore();
        inFile >> allseason;
        inFile.ignore();
        getline(inFile, famousfor);
        while (!inFile.eof())
        {
            cout << parkname << setw(30) << city << setw(30) << state << setw(28) << yearestablished << setw(40) << website << setw(30) << endl;
            cout << left;
            getline(inFile, parkname, '#');
            getline(inFile, city, '#');
            getline(inFile, state, '#');
            inFile >> yearestablished;
            inFile.ignore();
            getline(inFile, phone, '#');
            getline(inFile, website, '#');
            inFile >> dailyfee;
            inFile.ignore();
            inFile >> sqyards;
            inFile.ignore();
            inFile >> hikingtrails;
            inFile.ignore();
            inFile >> skiing;
            inFile.ignore();
            inFile >> wildernesscamp;
            inFile.ignore();
            inFile >> canoing;
            inFile.ignore();
            inFile >> kayaking;
            inFile.ignore();
            inFile >> guidedtours;
            inFile.ignore();
            inFile >> allseason;
            inFile.ignore();
            getline(inFile, famousfor);

        } inFile.close();
    }
    system("pause");
    return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
字符串parkname=“”;
字符串城市=”;
字符串状态=”;
字符串phone=“”;
字符串网址=”;
字符串“”;
int=0;
双倍日费=0;
整数平方码=0;
char-hikingtrails='';
char='';
char WildernsCamp='';
碳独木舟=“”;
皮划艇='';
char guidedtours='';
char-allseasure='';
河流充填;
infle.open(“nationalparks.txt”);
if(infle.is_open())
{
滑雪;
infle.ignore();
内嵌>>WildernsCamp;
infle.ignore();
填充>>独木舟;
infle.ignore();
内嵌>>皮划艇;
infle.ignore();
内嵌>>指南教程;
infle.ignore();
填充>>四季;
infle.ignore();
getline(因填充而出名);
而(!infle.eof())
{
库特·威尔德内斯坎普;
infle.ignore();
填充>>独木舟;
infle.ignore();
内嵌>>皮划艇;
infle.ignore();
内嵌>>指南教程;
infle.ignore();
填充>>四季;
infle.ignore();
getline(因填充而出名);
}infle.close();
}
系统(“暂停”);
返回0;
}

我希望用户能够输入例如阿拉斯加,并且只显示那些公园。我认为字符串搜索会起作用,但我对如何做有点困惑

在开始添加附加功能之前,首先修复所有现有的bug总是一个好主意。你可以从开始。要搜索某个东西,它需要在一个容器中。因此,将记录添加到
std::vector
中。然后查看
std::find_if()