![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
progbeg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Задача состоит в том, чтобы считать из файла цифры и разделить их сумму на 10. Формат файла - слово, пробел, слово и несколько цифр через пробелы - таких строк несколько.
Вот функция, которая решает эту задачу (в главной только открытие файлов и проверка на их существование и, после вызова функции, закрытие файлов):
Файл переписывается корректно, числа находятся (проверено выводом на экран), но вот в переменной sum получаются какие-то непонятные значения - 30 и 56. Это сообщение отредактировал(а) progbeg - 15.8.2007, 09:23 |
|||
|
||||
Fazil6 |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
это ты так символьное представление цифры в int переводишь???? Добавлено через 1 минуту и 46 секунд
|
||||
|
|||||
progbeg |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
да, такой метод приводится в учебнике ![]()
Можно вот это пояснить? ![]() |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
символическое представление цифры S = N + 48, где N = 0 ... 9 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
||||
|
||||
archimed7592 |
|
||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
Fazil6, почему не так?
Так вроде портабельней ![]() progbeg, если ф-ция не завязана на том, что ты читаешь-пишешь файлы, то лучше сделать сигнатуру более универсальной:
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||
|
|||||
progbeg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Fazil6, archimed7592, MAKCim, спасибо, программа работает. Только что такое символическое представление числа (знаю только каноническое)? В поисковиках что-то ничего не нашлось. Если можно, ссылку.
![]() |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
const char *str = "2345";
int x = 2345; Знаешь, чем эти две строки отличаются? Когда узнаешь, это и будет ответ на твой вопрос. |
|||
|
||||
SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 4 Всего: 91 |
Следующим заданием будет адаптация алгоритма ко всем возможным кодировкам.
|
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
progbeg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
bsa, получается, что символьное представление числа - это число, записанное как строка (т.е. различие типов). Значит, когда строку нужно перевести в число, эту строку разбирают посимвольно и пользуются установленным соответствием (строка '0' это число 0 и т.д.), считают количество символов в строке - это количество разрядов в числе и потом собирается нужное число. Но всё равно непонятно, что значит
Это связано с тем, что 0 - 30-ый символ в таблице? |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
progbeg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 11.7.2006 Репутация: нет Всего: нет |
Какой же смысл в вычитании из строки '0'? Как это работает, какой механизм?
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
механизм слишком громкое слово. ![]() ![]() в памяти все хранится в одних и тех же единичках и нулях, будь то символ, целое число, либо с плавающей точкой. компилятор понимает запись вида 'a' как число соответствующее символу a когда мы пишем: char c = 'a'; в c записывается это самое число. спросите, почему же когда мы пишем: cout<<c; у нас выводится символ а не число? а все просто, так перегружен operator<< для типа char. |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
Я бы так реализовал:
Это сообщение отредактировал(а) Xenon - 16.8.2007, 20:36 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |