Помощь - Поиск - Пользователи - Календарь
Полная версия: в основном работа с файлами
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
3 задачи на Си
Всем доброго времени суток.
Поставили перед нами три задачи. Очень прошу Вас отнестись с пониманием к несвязанным с программированием специальностям и соответствующим незнанием основ. Сразу скажу, что первую задачу сделать пытался, преподаватель сказал, что вроди всё верно но углублятся в её просмотр не стал, я её скину - тем ккому легче исправить ошибки нежели тратить время на написанеи с нуля прошу её отредактировать...
Далее три этих задачи...

Цитата
Задание 1.

Написать программу cpy, копирующую файл.
В командной строке задаются два имени файла. Нужно скопировать
первый файл во второй. Предусмотреть проверку на совпадение имен исходного
и целевого файлов.


Задание 2.

Входной файл задает последовательность интервалов со
знаковыми границами.
В первой строке файла записано количество интервалов,
в остальных строках записано по два числа, разделенных пробелом,
задающих левую и правую границы интервала.
Написать программу, определяющую, содержится ли интервал [A, B]
в множестве чисел, полученном при объединении всех интервалов
последовательности.
В командной строке задано имя входного файла, число A, число В.
Печатается Yes или No.


Задание 3

Написать программу cat, читающю построчно текстовый файл и выдающую
на стандартный вывод строки задом-наперед.

Пример.
---- входной файл input.txt ----
Book 01 Genesis

001:001 In the beginning God created the heaven and the earth.

001:002 And the earth was without form, and void; and darkness was
upon the face of the deep. And the Spirit of God moved upon
the face of the waters.

001:003 And God said, Let there be light: and there was light.

001:004 And God saw the light, that it was good: and God divided the
light from the darkness.
--------------------------------

запуск: cat input.txt
------------ выдача ------------
siseneG 10 kooB

.htrae eht dna nevaeh eht detaerc doG gninnigeb eht nI 100:100

saw ssenkrad dna;diov dna ,mrof tuohtiw saw htrae eht dnA 200:100
nopu devom doG fo tiripS eht dnA .peed eht fo ecaf eht nopu
.sretaw eht fo ecaf eht

.thgil saw ereht dna :thgil eb ereht teL ,dias doG dnA 300:100

eht dedivid doG dna :doog saw ti taht ,thgil eht was doG dnA 400:100
.ssenkrad eht morf thgil
Вот первая задача...сильно не бейте...

header:
#ifndef HEADER_H
#define HEADER_H
#endif
int cpy(FILE *f1, FILE *f2);


main:
#include "stdio.h"
#include "stdlib.h"
#include "head.h"
#include <stdlib.h>
#include <string.h>

void main(int argc, char *argv[])
{
	FILE *fin; FILE *out;
	char *f1, *f2; int zn;
	char buf[20];

	if (argc < 2)
	{
		scanf("%s %s",buf, &f1, &f2);
		zn = strcmp(f1, f2);
		if (zn)
			{
				printf("%s", "имена совпадают");
			}
		else
			{	
			fin = fopen(f1, "rb");
			out = fopen(f2, "wb");
			cpy(fin, out);
			}	
	}
	else
	{
		
		fin = fopen(argv[1], "rb");
		out  = fopen(argv[2], "wb");
		
		cpy(fin, out);
		fclose(fin);
		fclose (out);
	}
		
	
}


func:
#include "stdio.h"
#include "head.h"
#include <stdlib.h>
#include <string.h>
int cpy(FILE *f1, FILE *f2)
{
	int a;
	int *mal;
	mal = (int*)malloc(sizeof(int));
	a = fread(mal,1,1024,f1);
	while (a) 
	{
		fwrite(mal,1,a, f2);
		a = fread(mal,1,1024,f1);
	}
return 0;}


нам было сказано юзать fwrite, fread...

Нам это сегодня надо отправить преподу, пожалуйста отнеситесь максимально конструктивно к вопросу...ну оочень важно....
Гость
Вот такие размышления у меня есть по поводу третьей задачи, но почему то немогу довести до ума её... посмотрите плиз
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char *argv[])
{
	FILE *stream;
	char s[256],*in;
	int i,l;
	in=argv[1];
	if( (stream  = fopen( in, "r" )) != NULL )
	{
		while(!feof(stream))
		{
			if(fgets(s,256,stream)!=NULL)
			{
				for(i=0;i<strlen(s);i++) printf("%c",s[strlen(s)-i]);
			}
		}
		fclose(stream);
	}
	return 0;
}
Гость
Разобрался с 1ой и третей более или менее разобрались, т.е. первую упростили конечно, и если кто нить таки обратит внимание на неё прошу подкорректиовать, но особенно нужна 2ая
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.