exit( 1 );
return;
}
else
{
puts("Данные успешно записаны.");
getchar();
}
if( otkr[0] != '\0' && a >= 0 )
argv[1] = '\0';
fclose( out );
}
12) Файл «sohranenie.c».
// Заголовочный файл
#include "foto.h"
void sohranenie( struct foto arr[], int i, char *argv[] )
{
// Перемнные и файловый указатель
char a;
char sohr[DLINA] = "\0";
FILE *in;
int x = 0;
system("clear");
if( i >= 0 && argv[1] == '\0' )
{
puts("Введите и мя файла для сохранения.");
while( getchar() != '\n' ) continue;
fgets( sohr, DLINA, stdin );
/* Проверка ввода некорректных значений */
while( sohr[0] == '\n' || sohr[0] == ' ' )
{
puts("Ошибка при вводе имени файла.");
fgets( sohr, DLINA, stdin );
}
sohr[strlen( sohr ) - 1] = '\0';
argv[1] = sohr;
}
// Открытие файла
if( ( in = fopen( argv[1], "wb" ) ) == NULL )
{
fprintf(stderr, "Произошка ошибка при открытии указанного файла.\n");
fprintf(stderr, "\'Q\' –выход из приложения.\t\'Enter\' - возврат.\n");
a = getchar();
if( a == 'q' || a == 'Q' )
exit( 1 );
return;
}
// Запись в файл
if( fwrite( arr, sizeof( struct foto ), podschet( arr ), in ) != podschet( arr ) )
{
fprintf(stderr, "Произошка ошибка при записи указанного файла.\n");
fprintf(stderr, "\'Q\' –выход из приложения.\t\'Enter\' - возврат.\n");
while( getchar() != '\n' ) continue;
a = getchar();
if( a == 'q' || a == 'Q' )
exit( 1 );
return;
}
else
{
puts("Данные успешно записаны.");
getchar();
}
if( sohr[0] != '\0' && a >= 0 )
argv[1] = '\0';
fclose( in );
}
13) Файл «podschet.c».
// Заголовочный файл
#include "foto.h"
/* Функция для подсчёта записей */
int podschet( struct foto arr[] )
{
int x, y = 0;
system("clear");
for( x = 0; x < CHISLO; x++ )
if( arr[x].marka[0] != '\0' )
y++;
if( y == 0 )
{
puts("Справочник пуст.");
getchar();
}
return y;
}
14) Утилита «Makefile»
foto: main.o chisl_menu.o chtenie.o menu_zapis.o podschet.o sohranenie.o sort_puz.o sort_vib.o sort_vst.o udalenie.o vivod_vseh.o vivod_zapisi.o vvod_zapisey.o
gcc main.o chisl_menu.o chtenie.o menu_zapis.o podschet.o sohranenie.o sort_puz.o sort_vib.o sort_vst.o udalenie.o vivod_vseh.o vivod_zapisi.o vvod_zapisey.o -o magn
main.o: main.c foto.h
gcc -c main.c
chisl_menu.o: chisl_menu.c foto.h
gcc -c chisl_menu.c
chtenie.o: chtenie.c foto.h
gcc -c chtenie.c
menu_zapisi.o: menu_zapisi.c foto.h
gcc -c menu_zapisi.c
podschet.o: podschet.c foto.h
gcc -c podschet.c
sohranenie.o: sohranenie.c foto.h
gcc -c sohranenie.c
sort_puz.o: sort_puz.c foto.h
gcc -c sort_puz.c
sort_vib.o: sort_vib.c foto.h
gcc -c sort_vib.c
sort_vst.o: sort_vst.c foto.h
gcc -c sort_vst.c
udalenie.o: udalenie.c foto.h
gcc -c udalenie.c
vivod_vseh.o: vivod_vseh.c foto.h
gcc -c vivod_vseh.c
vivod_zapisi.o: vivod_zapisi.c foto.h
gcc -c vivod_zapisi.c
vvod_zapisey.o: vvod_zapisey.c foto.h
gcc -c vvod_zapisey.c
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.