Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2018, 17:15   #1
Scarecccrow
Новичок
Джуниор
 
Регистрация: 11.05.2018
Сообщений: 2
Восклицание Работа с файлами

Есть файл, в нем содержится n строк. Половина строки текст, а последние 4 элемента это цифры введённые через пробел. Надо из этого файла вывести на экран строки, в которых сумма последних 4 цифр равна 20. Не знаю как это реализовать, можно узнать какие команды для этого использовать и вообще каков алгоритм. Заранее спасибо за ответ)
Scarecccrow вне форума Ответить с цитированием
Старый 11.05.2018, 17:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Scarecccrow Посмотреть сообщение
каков алгоритм
Код:
открыть файл на чтение.
цикл пока не конец файла
  прочитать очередную строку из файла. 
  распарсить - взять часть строки от последнего пробела до конца строки
  проверить, если это 4 цифры, просуммировать их
                         если сумма == 20 
                             вывести строку целиком
конец цикла  
закрыть файл.
конец.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2018, 17:30   #3
Scarecccrow
Новичок
Джуниор
 
Регистрация: 11.05.2018
Сообщений: 2
По умолчанию

Вот я не знаю как взять часть строки и проверить эти 4 цифры на то, равны ли они 20, точнее какие команды использовать
Scarecccrow вне форума Ответить с цитированием
Старый 11.05.2018, 22:18   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,546
По умолчанию

Таких волшебных командов нет, есть функции работы со строками. Но если цифр всегда 4, можно не парсить, а вычислив длину строки, скопировать последние 4 символа и их обработать.
Можно сделать так, практически не включая голову.

Код:
 l = strlen(s) ;
 k = 0 ;
 for (i = l-4;i < l;i++) k = k + (s[i] & 0xF) ;

Последний раз редактировалось digitalis; 12.05.2018 в 10:47.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Лабораторная работа(очень простая) Структуры, работа с файлами yurda Фриланс 2 11.06.2016 08:44
Работа с файлами на Си AndrewKarpaty Помощь студентам 4 20.01.2015 08:16
Работа с файлами. forged Общие вопросы C/C++ 10 29.05.2014 21:10
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Работа с файлами newkobra Общие вопросы C/C++ 9 15.03.2010 22:03