Форум «Всё о Паскале» _ Ада и другие языки _ в основном работа с файлами
Автор: 3 задачи на Си 26.03.2007 11:58
Всем доброго времени суток. Поставили перед нами три задачи. Очень прошу Вас отнестись с пониманием к несвязанным с программированием специальностям и соответствующим незнанием основ. Сразу скажу, что первую задачу сделать пытался, преподаватель сказал, что вроди всё верно но углублятся в её просмотр не стал, я её скину - тем ккому легче исправить ошибки нежели тратить время на написанеи с нуля прошу её отредактировать... Далее три этих задачи...
Цитата
Задание 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. --------------------------------
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...
Нам это сегодня надо отправить преподу, пожалуйста отнеситесь максимально конструктивно к вопросу...ну оочень важно....
Автор: Гость 26.03.2007 12:09
Вот такие размышления у меня есть по поводу третьей задачи, но почему то немогу довести до ума её... посмотрите плиз
Разобрался с 1ой и третей более или менее разобрались, т.е. первую упростили конечно, и если кто нить таки обратит внимание на неё прошу подкорректиовать, но особенно нужна 2ая