2015-12-27 2 views
-3

Я хочу выполнить поиск записи id, класса, раздела, пола, адреса электронной почты и номера телефона. здесь кодПоиск строки в обработке файлов

void searching() 
{ 

    cout << "\t\t\t\tSearching the Record" << endl; 

    int offset; 
    std::string se_id, se_name, se_email, se_home, se_clas, se_tele, se_cell, se_sec, se_gender, line; 
    ifstream filee; 
    filee.open("Student.txt"); 
    cout << "\nType id of student you want to search:"; 
    cin >> se_id; 
    if (filee.is_open()) 
    { 

     while (!filee.eof()) 
     { 
      getline(filee, line); 
      if (((offset = line.find(se_id, 0))) != string::npos) 
      { 
       cout << "\nId ::" << se_id; 
       cout << "\nSearch found"; 
       break; 
      } 
     } 
     filee.close(); 
    } 
    else 
    { 
     cout << "search not found"; 
    } 
} 
+3

Здесь нет никаких вопросов. Разве это не работает? Укажите сообщение об ошибке или ожидаемый результат и фактический вывод. – BoBTFish

+0

Что является структурой этого файла? И с чем вы столкнулись? – ChrisD

+1

Не делайте 'while (! Filee.eof())', это почти всегда неправильно. Вместо этого 'while (getline (...))'. –

ответ

0

Это должно получить то, что вы хотите (см. ниже). Я оставляю его для проверки, чтобы убедиться, что файл был открыт правильно. Кроме того, может быть полезно сообщить пользователю, нет ли найденных записей.

#include <iostream> 
#include <fstream> 
#include <string> 
#include <sstream> 
using namespace std; 

int main() { 
    ifstream in("Student.txt"); 

    int target_id, id; 
    cin >> target_id; 

    string record, field; 
    // while there are records in the file 
    while(getline(in, record)) { 
     istringstream ss(record); 
     ss >> id; 
     // Check to see if target id equals record id 
     if(target_id == id) { 
      cout << id; 
      // It does, so let's print the rest of the fields 
      while(getline(ss, field, ',')) { 
       cout << field << " "; 
      } 
      cout << endl; 
     } 
    } 
    in.close(); 

    return 0; 
} 
+0

Он может выдавать любой на экране вывода, пока я вводим идентификатор. я пошлю вам весь код и, пожалуйста, снова возьмите его и помогите мне. –

+0

спасибо брат. он работает. –

+0

@JamshedSalik проблем нет. Не забудьте отметить ответ, как принято. – ChrisD

Смежные вопросы