Шаг 18.
Microsoft Visual C++ 2010. Язык С/С++. Программы для работы с символьными данными. Программа копирования символьного файла (2-й вариант)

    На этом шаге мы приведем модификацию программы из педыдущего шага.

    Ранее мы познакомились с правилом, когда вместо переменной некоторого типа можно использовать и выражение этого же типа. Воспользуемся этой возможностью и запишем нашу программу в другом виде:

// Copy_2.cpp: главный файл проекта.

#include "stdafx.h"
#include <clocale> //обязательно для функции setlocale()

using namespace System;

#include <conio.h>	// для getch()
#include <stdio.h>	// для getchar(), putchar(), printf()
#define eof -1	        // признак конца файла Ctrl+Z

int main()
{
	setlocale(LC_ALL,"Russian"); //функция setlocale() с аргументами
                                     //для корректного вывода кириллицы
	int c;

	printf("Задайте строку>\n");
	while((c=getchar())!= eof)
	{
		putchar(c); 
	}
	_getch();  /*вводит символ, но без эхо-сопровождения 
			   (для организации задержки экрана) */
	
	return 0;
}
Архив проекта можно взять здесь.

    Ввод символа мы внесли в заголовочную часть while, поскольку c=getchar() - это выражение того же типа, что и с. Конструкция цикла while в общем случае работает так: он сначала вычисляет выражение, которое находится в его заголовочной части, при этом выполняется ввод символа с клавиатуры, что нам и нужно. Затем конструкция while проверяет, не являются ли введенные символы признаком конца файла. Так как, в отличие от предыдущего варианта, тело цикла while состоит только из одного оператора putchar (с), то фигурные скобки можно опустить. После того как выполнится putchar (с), управление будет передано в заголовочную часть while, где снова начнется вычисление выражения, которое, в свою очередь, потребует ввода символа с клавиатуры и т. д.

    На следующем шаге мы рассмотрим программу, выполняющую подсчет символов в файле.




Предыдущий шаг Содержание Следующий шаг