Форум программистов, компьютерный форум CyberForum.ru

условие: с файла по-байтно считываются символы (while (от первого до последнего символа)) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ натуральные числа http://www.cyberforum.ru/cpp-beginners/thread266793.html
Вывести на печать все натуральные числа, меньшие заданного N, сумма квадратов цифр которых кратна 7. Определите 3 цифры номера автомобиля, если известно, что получившееся число кратно 2, 5 и 7, а сумма цифр равна 12.
C++ Что я неправильно сделал? #include <stdio.h> #include <math.h> int main(void) { long n; /* параметр ряда */ double dbln; /* параметр ряда в форме с плавающей точкой */ double sum=0; /* сумма членов ряда */ double term; /* значение текущего члена */ const double eps=0.000001; /* предел точности */ long k2=1; /* pow(2,n)*/ short k1=1; /* pow(-1,n)*/ http://www.cyberforum.ru/cpp-beginners/thread266786.html
C++ Реализация класса
Спроектировать и реализовать класс BigInt, позволяющий хранить целые числа в диапазоне , и производить набор основных операций с ними. В классе должны быть определены различные конструкторы (по умолчанию, по строке (char *), по целому числу встроенного типа (например, long), конструктор копирования). Должны быть перегружены следующие операторы: +, ++ (префиксный и постфиксный), --...
C++ Ошибка при использовании оператора delete в Visual Studio 2010
Изучаю указатели в C++. Есть следующий код: #include <iostream> #include <locale> using namespace std; int main() { setlocale(LC_CTYPE, "Russian"); char **month = new char* ;
C++ Спроектировать и реализовать класс BigInt http://www.cyberforum.ru/cpp-beginners/thread266777.html
Нужно спроектировать и реализовать класс BigInt, позволяющий хранить целые числа в диапазоне , и производить набор основных операций с ними. В классе должны быть определены различные конструкторы (по умолчанию, по строке (char *), по целому числу встроенного типа (например, long), конструктор копирования). подскажите с чего начать?!!
C++ Программа подсчета результатов выступления спортсменов по прыжкам с трамплина Struct sportsme +массив указателей { * misce Char famil ; Int nomer; Intmetry; Int baly; Int suma-ochky Uchasnyky } 1.В начале программы заполняем массив нулями, кроме номера. подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
30.03.2011, 13:44     условие: с файла по-байтно считываются символы (while (от первого до последнего символа))
Функция fread работает с указателями, чтобы передать указатель на массив не надо ставить знак амперсанда перед именем переменной. Обратите внимание на 19 строку. Правильнее будет написать следующим образом:
C
1
while (fread(a, 1, 5, fp))
Далее Вы пытаетесь вывести, прочитанные с помощью fread 5 байтов на консоль, используя printf. Так делать нельзя, по скольку данный символьный массив не содержит нуль-терминатора, либо делайте массив размером 6 символов, и последний не используйте, либо выводите содержимое посимвольно в цикле.
Завершение цикла чтения файла не обязательно означает то, что файл прочитан до конца, после цикла советую поставить проверочные условия с использованием feof и ferror
Цитата Сообщение от politex Посмотреть сообщение
а если символов меньше 5. оно допишет 0?
Нет, обнулить массив вы должны заранее, например, с помощью функции memset, либо опять же в цикле поэлементно.
Важно помнить, что такие функции, как fread и memset работают именно с байтами, а не со строками. И размер обрабатываемого участка памяти они принимают в байтах, а не в количестве элементов.
 
Текущее время: 13:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru