Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2017, 11:55   #1
Shainik
 
Регистрация: 27.09.2016
Сообщений: 6
По умолчанию СИ Подскажите почему не читает из файла?

Код:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h> 
#include <iostream> 
#include <malloc.h> 
#include <string.h> 
#include <Windows.h>
#include <stdlib.h>
#include <conio.h>
struct AEROFLOT {
	char name[50];	// Название пункта
	int number;		// Номер рейса
	char tip[20];	// Тип самолёта
	int k1;			// колличество занятых мест
	int k2;			// всего мест

};
int main(){
	setlocale(LC_ALL, "Russian");
	AEROFLOT* routes;
	int razm;
	int i = 0;
	int r = 0;
	int l = 0;
	printf("Выберите сбособ заполнения, 1 если самостоятельно и 0, если прочитать из файла : \n");
	scanf_s("%i", &r);
	if (r == 1)
	{


		printf("Введите количество рейсов");
		scanf_s("%d", &razm);
		routes = (AEROFLOT*)malloc(razm * sizeof(AEROFLOT)); //выделение памяти
		for (int i = 0; i < razm; i++){
			printf("Название пункта назначения\n");
			scanf("%s", routes[i].name);

			printf("Номер рейса\n");
			scanf_s("%i", &(routes[i].number));

			printf("Тип самолёта\n");
			scanf("%s", routes[i].tip);

			printf("Колличество свободных мест\n");
			scanf_s("%i", &(routes[i].k1));

			printf("Колличество мест\n");
			scanf_s("%i", &(routes[i].k2));

		}
		printf("Сохранить структуру в фаил? Если да нажмите 1, нет 0 \n");
		scanf_s("%i", &l);
		//flushall();
		if (l == 1)
		{
			char z[60];
			printf("\nВведите имя файла для сохранения: ");
			scanf("%s", z);
			//gets(z);

			if (strchr(z, '.') == 0) strcat_s(z, ".txt"); //в имени ищем (.) и добовляем txt 
			FILE *f1 = fopen(z, "w");
			if (f1 == 0)
			{
				fprintf(f1, "Ошибка открытия.\n");
				return 0;
			}
			//запись в файл данных...

			for (int i = 0; i < razm; i++)
			{

				fprintf(f1, "%d\nНазвание пункта назначения", routes[i].name);

				fprintf(f1, "%d\nНомер", (routes[i].number));

				fprintf(f1, "%s\nТип самолёта", routes[i].tip);

				fprintf(f1, "%d\nКолличество свободных мест", (routes[i].k1));

				fprintf(f1, "%d\nКолличество мест", (routes[i].k2));

				fclose(f1);
				return 0;
			}
		}
	}
	else
	{
		char v[80];
		printf("Введите имя файла для чтения: \n");
		scanf("%s", v);
		FILE *f = fopen(v, "r");
		if (f == 0){
			puts("Ошибка открытия.\n");
			return 0;
		}
		if (fscanf(f, "%i", &razm) != 0)
		{
			printf("Ошибка!");
			return 1;
		}
		routes = (AEROFLOT*)malloc(razm * sizeof(AEROFLOT)); //выделение памяти
		for (i = 0; i < razm; i++){
			fscanf(f, "%s", routes[i].name);
			fscanf(f, "%i", &routes[i].number);
			fscanf(f, "%s", routes[i].tip);
			fscanf(f, "%i", &routes[i].k1);
			fscanf(f, "%i", &routes[i].k2);
		}
	}
Shainik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ReadSection() иногда читает секцию ini-файла не полностью igrnd Общие вопросы Delphi 3 27.10.2015 15:13
Не правильно читает из файла dimon_medved Общие вопросы C/C++ 0 17.11.2012 00:46
VBA не пойму почему не скрипт читает второе сообщение Drek Помощь студентам 0 20.07.2010 01:06
Не читает ВЕСЬ объект из файла Дырдин Общие вопросы C/C++ 2 13.04.2010 09:04
Почему читает лишнюю строку nusik Общие вопросы C/C++ 6 20.05.2009 18:22