Прочитать определенную строку из текстового файла с помощью С++

#include <iostream.h>

#include <stdlib.h>
#include <fstream.h>
#include <iomanip.h>
#include <string.h>
#include <conio.h>
int view(void)
{ 
  ifstream in("NewFaculty.txt");

  if(!in) {
    cout << "Cannot open input file.\n";
    return 1;
  }

  char str[255];

  while(in) {
    in.getline(str, 255);  // delim defaults to '\n'
    if(in) cout << str << endl;
  }

  in.close();
  getch();
  return 0;
}

int main()
{
  view();
}

У меня есть этот код для извлечения данных из текстового файла на С++. Используя этот код, я получаю все данные файла в качестве вывода, например:

          name     address    id
          xxx      hyd       0001
          yyy      hyd       0002

Но мне нужен вывод только определенной строки данных, принимая ввод с клавиатуры. Нужен вывод, например:

          name     address    id
          xxx      hyd        0001

Здесь мой ввод name. Пожалуйста, помогите в этом.


person Santhosha Reddy    schedule 05.10.2015    source источник
comment
да, мне нужно исправить это, но я не понимаю.   -  person Santhosha Reddy    schedule 05.10.2015
comment
Что такое ввод с клавиатуры (идентификатор, имя, адрес, номер строки)?   -  person sop    schedule 05.10.2015
comment
Используйте std::istream::ignore, подробности см. в существующем ответе: stackoverflow.com/a/25012566/492336   -  person Андрій Каражов    schedule 05.10.2015
comment
Вам нужно проверять каждую строку, когда вы ее читаете. Сначала извлеките столбец имени, а затем сравните его с введенным именем, чтобы увидеть, совпадают ли они. Если они это сделают, напечатайте строку и остановитесь. В противном случае не печатайте строку и продолжайте.   -  person Galik    schedule 05.10.2015


Ответы (1)


Я бы сохранил значения каждой строки в такой структуре:

struct RecordLine
{
   std::size_t lineNo; // optional
   std::string name;
   std::string address;
   std::string id;
};

И я бы проверил тогда ввод с клавиатуры, и если да, то я печатаю строку. Будьте осторожны, сначала прочитайте ввод с клавиатуры, а затем выполните поиск в файле. Но можно использовать класс, с методами чтения строки (было бы лучше)

person sop    schedule 05.10.2015