Листинг файла main.c
#include <stdlib.h>//Подключение библиотеки ввода-вывода
#include <stdio.h>//Подключение библиотеки ввода-вывода
#include <locale.h>//Подключение библиотеки ввода-вывода
struct work// структура
{
char name [30];// массив
char capital[30];//массив
char pp[30];//массив
char gp[30];//массив
int fp; //ввод переменной
};
struct work w1[5];//структура массива(набор из 5-ти элементов устр. как объявлено в типе стр.work)
int main() // главная функция программы
{
int i=0;//ввод переменной
char *m[i][1];//указатель на двумерный массив
struct work *pm[5];// структура с указателем на массив
pm[0]=&w1[0].name;// присвоение порядковому номеру ссылки на данные
pm[1]=&w1[0].capital;// присвоение порядковому номеру ссылки на данные
pm[2]=&w1[0].pp;// присвоение порядковому номеру ссылки на данные
pm[3]=&w1[0].gp;// присвоение порядковому номеру ссылки на данные
pm[4]=&w1[0].fp;// присвоение порядковому номеру ссылки на данные
setlocale(LC_ALL, "RUS");//подключение русского языка
char name[100];//массив
int a,b;// ввод переменных
char buf [100]; // буфер
int inputChar=1;//цикл с предупреждением
FILE*f1;// файл
while (1==1)// условие-1 -всегда еденица=всегда верно-, бесконечный цикл
{
system ("@cls");// отчистка экрана
printf("Меню:\n");// вывод на экран
printf("1.Записать страну (массив структур) (1)\n2.Записать страну (массив указателей) (2)\n3.Заполнение массива из блакнота и вывод его на экран. (3)\n4.Просмотреть список стран(4)\n5.Выход из программы(5)\n");
inputChar=getchar();// присвоения значения inputChar символа который будет введён с клавы
switch ((char)inputChar)// оператор выбора
{
case'1'://сли inputChar равно 1, условие
{
system ("@cls");// отчистка экрана
f1=fopen("f1.txt","a+");// Открыть файл для чтения и добавления данных.(поток)
printf("Введите название государства:");// вывод на экран
|
scanf("%s",w1[0].name);// ввод данных для вещественных - %s
printf("Введите стольцу государства:");// вывод на экран
scanf("%s",w1[0].capital);// ввод данных для вещественных - %s
printf("Введите форму правления:");// вывод на экран
scanf("%s",&w1[0].pp);// ввод данных для вещественных - %s
printf("Введите гос.устройство:");// вывод на экран
scanf("%s",&w1[0].gp);// ввод данных для вещественных - %s
printf("Введите количество жителей:");// вывод на экран
scanf("%d",&w1[0].fp);// ввод данных для вещественных - %d
printf("Название:%s Столица:%s Форма правления:%s гос.устройство:%s Кол-во жителей:%d\n",w1[0].name,w1[0].capital,w1[0].pp,w1[0].gp,w1[0].fp);// вывод на экран
fprintf(f1,"Название:%s Столица:%s Форма правления:%s гос.устройство:%s Кол-во жителей:%d\n",w1[0].name,w1[0].capital,w1[0].pp,w1[0].gp,w1[0].fp);// Записывает в файл последовательность символов
fclose(f1);// Разъеденяет и закрывает файл
}
system ("pause");//преостанавливает систему, ожидание
getchar(); // ожидания ввода с клавиатуры
break;// завершение цикла или оператора(след. опер.)
case'2'://сли inputChar равно 2, условие
printf("\nСколько Государств создать? ");// вывод на экран
scanf("%d",&a);// ввод данных для вещественных - %d
for (b=0;b<a;b++)//цикл с условием
{
system ("@cls");// отчистка экрана
printf("Введите название государства:");// вывод на экран
scanf("%s",pm[0]->name);//обращение к члену структуры
printf("Введите стольцу государства:");// вывод на экран
scanf("%s",pm[1]->capital);//обращение к члену структуры
printf("Введите форму правления:");// вывод на экран
scanf("%s",&pm[2]->pp);//обращение к члену структуры
printf("Введите гос.устройство:");// вывод на экран
|
scanf("%s",&pm[3]->gp);//обращение к члену структуры
printf("Введите количество жителей:");// вывод на экран
scanf("%d",&pm[4]->fp);//обращение к члену структуры
printf("Название:%s Столица:%s Форма правления:%s гос.устройство:%s Кол-во жителей:%d \n",pm[0]->name,pm[1]->capital,pm[2]->pp,pm[3]->gp,pm[4]->fp);// вывод на экран
f1=fopen("f1.txt","a+");// Открыть файл для чтения и добавления данных.(поток)
fprintf(f1,"Название:%s Столица:%s Форма правления:%s гос.устройство:%s Кол-во жителей:%d \n",pm[0]->name,pm[1]->capital,pm[2]->pp,pm[3]->gp,pm[4]->fp);// Записывает в файл последовательность символов
fclose(f1);// Разъеденяет и закрывает файл
}
system ("pause");//преостанавливает систему, ожидание
getchar(); // ожидания ввода с клавиатуры
break;// завершение цикла или оператора(след. опер.)
case'3'://сли inputChar равно 3, условие
system("@cls");// отчистка экрана
f1=fopen("f1.txt","r");// открытие файла для чтения
while (fgets(buf,sizeof(buf),f1)!=NULL)//возвращает символы,длину буфера не равного нулевому указателю
{
m[i][1]=buf;// двумерному массиву присваевается буфер
printf("%s\t",m[i][1]);// вывод на экран массива (горизонт.табуляц.)
}
fclose(f1);// Разъеденяет и закрывает файл
system ("pause");//преостанавливает систему, ожидание
getchar();// ожидания ввода с клавиатуры
break;// завершение цикла или оператора(след. опер.)
case'4'://сли inputChar равно 4, условие
system("@cls");// отчистка экрана
f1=fopen("f1.txt","r");// открытие файла для чтения
while (fgets(buf,sizeof(buf),f1)!=NULL)//возвращает символы,длину буфера не равного нулевому указателю
{
printf("%s\t",buf);// вывод на экран буфера (горизонт.табуляц.)
}
fclose(f1);// Разъеденяет и закрывает файл
system ("pause");//преостанавливает систему, ожидание
getchar();// ожидания ввода с клавиатуры
break;// завершение цикла или оператора(след. опер.)
sustem("pause");//преостанавливает систему, ожидание
case'5'://сли inputChar равно 5, условие
return 0;// завершение вып. функции
default: //по умолчанию
printf("Введите корректное значение \n");
system ("pause");//преостанавливает систему, ожидание
getchar();// ожидания ввода с клавиатуры
break;// завершение цикла или оператора(след. опер.)
}
}
return 0;
}