Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Ввод вывод данных.Стандартные потоки,файловые потоки.






    Целые, вещественные типы данных.Операции над ними.Диапозоны значений.Совместимость указанных типов.

    В С++ имеется набор встроенных типов данных для представления целых и вещественных чисел, символов, а также тип данных “символьный массив”, который служит для хранения символьных строк. Тип char служит для хранения отдельных символов и небольших целых чисел. Он занимает один машинный байт. Типы short, int и long предназначены для представления целых чисел. Эти типы различаются только диапазоном значений, которые могут принимать числа, а конкретные размеры перечисленных типов зависят от реализации. Обычно short занимает половину машинного слова, int – одно слово, long – одно или два слова. В 32-битных системах int и long, как правило, одного размера.

    Типы float, double и long double предназначены для чисел с плавающей точкой и различаются точностью представления (количеством значащих разрядов) и диапазоном. Обычно float (одинарная точность) занимает одно машинное слово, double (двойная точность) – два, а long double (расширенная точность) – три.

    char, short, int и long вместе составляют целые типы, которые, в свою очередь, могут быть знаковыми (signed) и беззнаковыми (unsigned). В знаковых типах самый левый бит служит для хранения знака (0 – плюс, 1 – минус), а оставшиеся биты содержат значение. В беззнаковых типах все биты используются для значения. 8-битовый тип signed char может представлять значения от -128 до 127, а unsigned char – от 0 до 255.

    Когда в программе встречается некоторое число, например 1, то это число называется литералом, или литеральной константой. Константой, потому что мы не можем изменить его значение, и литералом, потому что его значение фигурирует в тексте программы. Литерал является неадресуемой величиной: хотя реально он, конечно, хранится в памяти машины, нет никакого способа узнать его адрес. Каждый литерал имеет определенный тип. Так, 0 имеет тип int, 3.14159 – тип double.

    В целом типе над ограниченным множеством математически целых чисел выполняются операции +, -, *, /, div, mod, где div — операция деления нацело (ее результат — целая часть обычного частного), mod — операция взятия остатка от деления. Только результат операции / имеет вещественный тип, результаты прочих — целого типа. Возведение в целую степень выполняют через умножения.

    Над данными вещественного типа допустимы операции + (сложение), – (вычитание), * (умножение), / (деление).

    Порядок приоритета:

    Not;

    Div, mod, and, shl, shr(сдвиг);

    Xor, or;

    4. =, < >, <, >, < =, > =, in.

    Ввод вывод данных.Стандартные потоки, файловые потоки.

    istream — класс входных потоков;

    ostream — класс выходных потоков;

    iostream — класс двунаправленных потоков ввода-вывода;

    Библиотека обслуживает стандартные потоки путем определения в заголовочном файле iostream.h четырех специальных объектов:

    cin — объект класса istream, связанный со стандартным буферизованным входным потоком (обычно — клавиатура кон­соли); использует операцию(> >)

    cout — объект класса ostream, связанный со стандартным буферизованным выходным потоком (обычно — дисплей кон­соли); (< <)

    Включаемый файл:

    #include< fstream>

    Файловые потоки реализованы следующими классами:

    // файловые потоки ввода

    typedef basic_ifstream< char> ifstream;

    typedef basic_ifstream< wchar_t> wifstream;

    // файловые потоки вывода

    typedef basic_ofstream< char> ofstream;

    typedef basic_ofstream< wchar_t> wofstream;

    // файловые потоки ввода/вывода

    // наследники от предыдущих

    typedef basic_fstream< char> fstream;

    typedef basic_fstream< wchar_t> wfstream;

    методы файловых потоков

    close() - закрывает файл;

    open(const char* s, ios_base:: openmode n, long protection = 0666) - открывает файл;

    bool is_open() - определяет открыт ли файл.

    Конструктор файлового потока может заменить метод open. Значения режима открытия файла задаются вложенным типом open_mode:

     

    typedef int openmode; // режим открытия потока

    enum open_mode {

    app = 0x01, // всегда писать в конец файла

    binary = 0x02, // ввод/вывод в двоичном режиме

    in = 0x04, // открыть для ввода

    out = 0x08, // открыть для вывода

    trunc = 0x10, // уничтожить данные после открытия существующего потока

    ate = 0x20 // открыть позиционируя указатель на конец файла

    };

    текстовой и двоичный режим

    В двоичном режиме при операциях ввода/вывода особые символы не заменяются (типа конца строки), что позволяет правильно обработать двоичные файлы (например, файлы *.bmp). При этом для чтения данных используется метод read, а для записи метод write.

    По умолчанию потоки открываются в текстовом режиме и в зависимости от типа потока для ввода, вывода или ввода/вывода. Так в вызове ofstream fout(" out.txt", ios_base:: out|ios_base:: app); ios_base:: out| можно опустить.

    пример

    // чтение элемента с текущей позиции потока

    template< class T>

    inline void read_el(ifstream& fin, T el)

    {fin.read((char*)& el, sizeof(el)); }

    // запись элемента в текущую позицию потока

    template< class T>

    inline void write_el(ofstream& fout, T el)

    {fout.write((const char*)& el), sizeof(el)); }

    //===========================================

    /****************************

    Вводим имя файла, затем

    выводим его размер.

    Для завершения необходимо ввести

    некорректное имя файла.

    ****************************/

    #include < iostream>

    #include < fstream>

    using namespace std;

    int main(){char buf[100]; ifstream fin;

    cout < < " for close program input incorrect file name\\n";

    while(1){

    cout< < " input file name: "; cin> > buf;

    fin.open(buf, ios_base:: binary);

    if(! fin.is_open()) {cout< < " file not exist"; break;

    } fin.seekg(0, ios_base:: end);

    cout< < " file size is " < < fin.tellg() < < " bytes" < < endl;

    fin.close();

    }return 0; }






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.