Как сделать чтоб можно по номеру строки выводить весь текст этой строки
ifstream question_1;//вопрос 1
{
question_1.open(question1);
if (!question_1.is_open())
{
cout << "Ошибка открытия файла" << endl;
}
else
{
cout << "файл открыт" << "\n\n" << endl;
cout << text1 << endl;
while (!question_1.eof())
{
//затирка для того чтоб последнее значение не повторялось
text1 = "";
// Объект откуда считывается, куда записывать
getline(question_1, text1);//построчное считывание
Допустим у меня выпал номер 4 и соответственно мне нужно вывести весь текст 4 строки
Ответы (1 шт):
Автор решения: mazik7512
→ Ссылка
Вам нужно сначала считывать все строки из файла в массив строк. Тут есть два варианта, если вы изначально знаете количество строк, то просто создавайте массив этого размера. Предположим, что количество этих строк равно 5.
const int N = 5;
string* str_arr = new string[N];
for (int i = 0; i < N; i++)
{
getline(question_1, str_arr[i]);
}
delete [] str_arr;
Либо же, если количество строк неизвестно воспользуйтесь контейнером vector.
vector<string> str_arr;
И при запросе номера строки выводить из этого массива элемент под индексом [Номер запрошенной строки - 1].
int index;
cout << "Введите номер строки>";
cin >> index;
cout << str_arr[index - 1] << endl;
UPD. Добавил чтение по совету @KoVadim.