Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Марк Шелестов
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 4
1

Чтение чисел из файла до конца строки

03.09.2018, 05:32. Просмотров 908. Ответов 8
Метки нет (Все метки)

Есть один файл. В первой строке написано общее количество последующих строк, во всех остальных — как раз эти строки, в каждой из которых есть неопределённое количество чисел. Мне нужно первые два числа строки записывать в переменные, все следующие — поочерёдно в два массива, а после выполнения определённых действий — стирать оба массива. Не знаете как это правильно реализовать? Есть идея сделать все с помощью getline() и дальше работать с динамическим массивом массивов символов, но так, по-моему, совсем колхозно выходит.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2018, 05:32
Ответы с готовыми решениями:

Чтение файла с n строки и до конца файла
как сделать так чтобы писало не с начала файла а например с середины и до конца? fstream...

Чтение до конца строки
В файле лежит только одно слово, мне его надо считывать while по символьно, я никак не разберусь с...

Чтение из файла с конца
Добрый день, не могу реализовать такую штуку =) Хотелось бы имеющийся текстовый файл перезаписать...

Чтение файла с несколькими знаками конца файла
В файле несколько раз встречается ноль, и ни как не получается прочитать его полностью. Как можно...

Чтение запросов до конца файла
Доброго времени суток, Помогите начинающему...Имеется задача.Само условие говорить не буду(не...

8
Verevkin
1478 / 886 / 237
Регистрация: 12.03.2015
Сообщений: 5,423
03.09.2018, 07:27 2
Вот пример неправильной формулировки вопроса на форумах.

А надо так:
Есть один файл (скачать - ссылка). В первой строке написано общее... блаблабла...
0
Марк Шелестов
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 4
03.09.2018, 07:40  [ТС] 3
Файла у меня как такого-то и нет, да и каждый раз он будет отличаться. Думаю, логичнее было как раз описать его составляющую. Но, если это так важно, то вот пример содержания документа:

4
3 4 5 6 35 2 531 233 134 54 3 3 4 5 674 4
352 1 34 3 56 2 3 42 4 2
12 3 1 1 2 5 2 4 2 3 2 4 16 23 11 2
1 1 2 3
0
Verevkin
1478 / 886 / 237
Регистрация: 12.03.2015
Сообщений: 5,423
03.09.2018, 07:51 4
Лучший ответ Сообщение было отмечено Марк Шелестов как решение

Решение

Цитата Сообщение от Марк Шелестов Посмотреть сообщение
Файла у меня как такого-то и нет, да и каждый раз он будет отличаться.
В общем случае это важно. Особенно - возможность именно скачать файл(ы), а не копировать их текстовое содержимое из браузера, т.к. реальная инфа может быть частично утеряна.
Цитата Сообщение от Марк Шелестов Посмотреть сообщение
Думаю, логичнее было как раз описать его составляющую.
Описать содержимое - обязательно.
---------
Для выполнения твоей задачи и strtok() сгодится.
1
03.09.2018, 07:51
Марк Шелестов
0 / 0 / 0
Регистрация: 27.09.2017
Сообщений: 4
03.09.2018, 08:11  [ТС] 5
Спасибо.
0
Manowar
Отава Ё.
2002 / 552 / 181
Регистрация: 12.03.2016
Сообщений: 2,089
Завершенные тесты: 1
06.09.2018, 23:26 6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <string_view>
#include <vector>
#include <sstream>
#include <charconv>
 
auto str_num(std::string_view ss)
{
    double res;
    std::from_chars(ss.data(), ss.data() + ss.size(), res);
    return res;
}
 
int main()
{
    std::string buf(" 12.456 12 47.8765 -2 34 -4756.876 4563.87 -984.57 ");
    std::istringstream ist(buf);
    std::string tmp;
    std::vector <double> v;
 
    while (ist >> tmp)
        v.emplace_back(str_num(tmp));
 
    for (const auto & el : v)
        std::cout << el << '\n';
 
    system("pause");
}
0
Kuzia domovenok
2540 / 2221 / 555
Регистрация: 25.03.2012
Сообщений: 8,026
Записей в блоге: 1
Завершенные тесты: 1
07.09.2018, 00:21 7
Manowar, я думаю это медвежья услуга для студентов и школьников - вместо того, чтобы выдавать им готовое "школьное" решение, намеренно обфусцировать код фишками из С++17
0
Manowar
Отава Ё.
2002 / 552 / 181
Регистрация: 12.03.2016
Сообщений: 2,089
Завершенные тесты: 1
07.09.2018, 00:29 8
Kuzia domovenok, ну хорошо, к C++17 вернемся в 2027 году, а еще лучше в 2037, тогда воще актуально будет.
0
Kuzia domovenok
2540 / 2221 / 555
Регистрация: 25.03.2012
Сообщений: 8,026
Записей в блоге: 1
Завершенные тесты: 1
07.09.2018, 10:01 9
Цитата Сообщение от Manowar Посмотреть сообщение
Kuzia domovenok, ну хорошо, к C++17 вернемся в 2027 году, а еще лучше в 2037, тогда воще актуально будет.
если в 2027 году в учебных заведениях по-прежнему будут изучать классический С++ без фишек 17, то и 2027 будем так поступать. Иначе палево.
Я бы на месте преподователя при одном взгляде на std::string_view определил бы, что код не студенческий, а с киберфорума. Повторяюсь - палево!
0
07.09.2018, 10:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2018, 10:01

Чтение начиная с конца файла
Всем добрый вечер! Программа создает самопальный класс список как в STL и пишет/ читает с файла ...

Считывание из файла до конца строки
Нужно написать программу, которая создаёт файл, каждая строка которого содержит буквы и цифры. В...

Ввод чисел до конца строки
как такое сделать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru