Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
26.05.2014
Размер:
1.08 Кб
Скачать
# include <stdio.h>
static void	err_report();
static FILE	*Fpi;		

main(argc, argv)
int	argc;
char	**argv;
{
	register int data = 0;
	register int lastdata = 0;
	register int already_dos = 0;

	/* open input file */
	switch (argc) {
	case 1: 
		{
			Fpi = stdin;
			break;
		}
	case 2: 
		{
			if ((Fpi = fopen(*++argv, "r")) == NULL)
				err_report(1);
			break;
		}
	default: 
		err_report(0);
	}

	while ( ! feof(Fpi)) {
		lastdata = data;
		data = fgetc(Fpi);
		if (data == EOF) break;		
		if (! already_dos) {
			if (data == '\n') {
				if (lastdata != '\015')		
				(void) fputc('\015',stdout);
				else
					++already_dos;
			}
		}
		(void) fputc(data,stdout);
	}

	if ( ! already_dos)
		(void) fputc('\026',stdout);		/* a control-Z */

	(void) fclose(Fpi);
	exit(0);
}


static void err_report(n)
int	n;
{
	switch (n)  {
	case 0: 
		(void) fprintf(stderr,"Usage: %s <file> \n",NAME);
		break;
	case 1: 
		(void) fprintf(stderr,"%s: Unable to open input file.\n",NAME);
		break;
	}

	exit(1);
}

/* EOF */
Соседние файлы в папке 2sem