Программирование - это просто
Advertisement
Главная
23.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Microsoft visual c++ 2008. Урок 5. Программа копирования символьного файла (putchar, getchar, stdio) Печать E-mail
Автор megabax   
07.07.2010 г.
New Page 1

Microsoft visual c++ 2008. Урок 5. Программа копирования символьного файла (putchar, getchar, stdio).

Сегодня мы напишем простейшую программу копирования символьного файла. В качестве входного файла у нас будет стандартное устройство "клавиатура", а в качестве выходного стандартное устройство "дисплей".  И так, вот текст программы:

#include "stdafx.h"
#include <conio.h> //Для _getch()
#include <stdio.h> //Для getchar() и putchar(c)
#define eof -1


int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    printf("Make input\n");
    c=getchar();
    while (c!=eof) {
         putchar(c);
        c=getchar();
     }
     printf("Press any key to continue");
    _getch();
     return 0;
}

Скомпилируем и запустим пример.  У вас на экране появиться подсказка "Make input" и мигающий курсор. Если вы введете строку и нажмете ENTER, то она тут же появиться на экране еще раз (дублируется):

Microsoft visual c++ 2008. Урок 5. Программа копирования символьного файла (putchar, getchar, stdio).

Прервать выполнение программы можно нажав комбинацию клавиш Ctrl+Z, код этой комбинации -1.  Возможность такого прерывания реализована путм использования цикла:

    while (c!=eof) {
         putchar(c);
        c=getchar();
     }

Он "крутиться" до тех пор, пока пользователь не ввел символ с кодом -1 (Ctrl+Z).

Функция getchar() - это ввод символов с эхо сопровождением, именно поэтому у нас в программе и происходит такое дублирование строк. тоесть, Пользователь нажал на кнопку, ее символ отобразился на экране средствами самой функции getchar(), да еще и потом вывелся функцией putchar(c).

Можно сделать эту же программу более компактной:

#include "stdafx.h"
#include <conio.h> //Для _getch()
#include <stdio.h> //Для getchar() и putchar(c)
#define eof -1


int _tmain(int argc, _TCHAR* argv[])
{
    int c;
    printf("Make input\n");
    c=getchar();
    while ((c=getchar())!=eof) putchar(c);
     printf("Press any key to continue");
    _getch();
     return 0;
}

Запустив на тестирование, мы увидим, что программа работает точно так же:

Microsoft visual c++ 2008. Урок 5. Программа копирования символьного файла (putchar, getchar, stdio).

В данном варианте у нас выражение перехода на следующую итерацию цикла помещено в тело оператора цикла, а в само тело цикла помещена лишь команда вывода символа на экран:

while ((c=getchar())!=eof) putchar(c);

Заметье, что когда в теле фикла всего лишь один оператор, то фигурные скобки не нужны.

Последнее обновление ( 16.11.2013 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги