![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
Kataklysm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
Доброе время суток.
Имею текстовый файл с набором символов. kataklysm@linux-hct1:~/Documents/Education/Информатика/2-1> cat file.dat
Нужно вывести кол-во десятичных чисел по строкам. Чтение из файла сделал как (прошу сильно не бить ![]()
Буду очень благодарен. Спасибо. P.S. Компилятор: gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux) Это сообщение отредактировал(а) Kataklysm - 27.9.2009, 13:08 |
||||
|
|||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
||||
|
||||
Kataklysm |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
Упс...извиняюсь, что не в ту тему написал. Нужно вывести кол-во десятичных чисел по строкам. P.S.Админы/Модераторы перенесите пожалуйста тему и пожалуйста сильно не пинайте. ![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Если тебе нужен совет по нахождению цифр в потоке данных, то используй условие if ((c >= '0') && (c <= '9')), где c - считанный из файла символ.
|
|||
|
||||
Kataklysm |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
bsa За совет спасибо, сейчас буду пробовать. Ну да, что -то есть, т.к. стараюсь делать сам, чтобы научится. P.S. Тогда непереноси ![]() |
|||
|
||||
Kataklysm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
Что то не получается. Натолкните пожалуйста на мысль.
Результат:
Ответ уж явно не верен ![]() |
||||
|
|||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 4 Всего: 459 |
1я ошибка это не инициализированные переменные.
Перед
нужно занулить a и i 2я ошибка. Для перебора нужен цикл. Тут его нету (например while) 3я ошибка тут
После каждой итерации строка затирается новой, прочитанной из файла т.е. перебор с проверкой символов следует делать тут же до начала новой итерации которая затрет строку, или же создавать массив строк чтобы в него поместить все строки, тогда перебор символов можно перенести на второй этап. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Kataklysm |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
Попробуем разобраться ![]() P.S. Не совсем конечно понял |
||||||
|
|||||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Kataklysm, попробуй читать из файла посимвольно с помощью std::istream::getc()
|
|||
|
||||
Kataklysm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
Чего то добился
![]()
Результат, верен:
Но как сделать именно "Нужно вывести кол-во десятичных чисел по строкам"? А то у меня пока считает только общее количество символов. P.S.Намекните пожалуйста ![]() Спасибо. |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Читаешь файл с помощью std::getline() построчно в std::string, затем засовываешь полученную строку в std::stringstream и читаешь уже посимвольно из получившегося потока.
|
|||
|
||||
Kataklysm |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
bsa, Подскажи пожалуйста, как это примерно написать, а то "до думаться" не могу. Спасибо.
|
|||
|
||||
Kataklysm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
И так...
Результат:
Тоесть чтение выполняется по столбцам, а не по по строчкам :(. Как сделать, чтобы считалось по строкам? Спасибо. |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Это сообщение отредактировал(а) bsa - 28.9.2009, 13:23 |
|||
|
||||
Kataklysm |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 27.9.2009 Репутация: нет Всего: нет |
bsa Спасибо большое. Только вот не понял функцию "stringstream", что она вообще делает? Объясни пожалуйста. ![]() P.S. Хочется понимать ![]() |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |