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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2015, 22:30   #1
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию Cчитывание из файла в стиле С [Visual C++]

Возникла проблема,при считывании данных в стиле С,а именно данных целочисленного типа.
Вот имеется программа:
Код:
int main()
{	
        FILE *f;
	f = fopen("f.txt", "w");
	Student obj;
	cout << "Добавить студентов:";
	cin >> k;
	for (int i = 0; i < k; i++)
	{
		get_c(obj);
	}
	fclose(f);
	Student *stud = new Student[n_obj];
	
	int i,res;
	f = fopen("f.txt", "r");
	i = 0;
	while (!feof(f))
	{
		fread(stud[i].name, sizeof(char), 10, f);
		fread(stud[i].group, sizeof(char), 10, f);
		/*fscanf(f, "%s", stud[i].name);
		fscanf(f, "%s", stud[i].group);*/
		fread(&res, sizeof(int),8, f);
		stud[i].stats = res;
		cout << stud[i].name << endl;
		cout << stud[i].group << endl;
		cout << stud[i].stats << endl;
		i++;
	}
	system("pause");
	return 0;
}
Выводит какой-то мусор.
Безымянный.jpg
Пробовал пошаговую компиляцию делать, почему-то переменной i присваивается автоматически значение = 1;

Последний раз редактировалось spectrum988; 18.05.2015 в 22:42.
spectrum988 вне форума Ответить с цитированием
Старый 18.05.2015, 23:50   #2
spectrum988
Форумчанин
 
Аватар для spectrum988
 
Регистрация: 24.10.2013
Сообщений: 241
По умолчанию

Вопрос уже не актуален,решил считывать как строку целочисленный тип и потом преобразовывать от сhar k int (atoi).
spectrum988 вне форума Ответить с цитированием
Старый 19.05.2015, 07:36   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
fread(stud[i].name, sizeof(char), 10, f);
stud[i].name нужно инициализировать. Например нулями. Можно использовать функцию memset().
Отсюда и дует мусор скорее всего.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Интерфейс приложений в стиле Office 2013, Visual Studio 2012/2013, Adobe CC nnmserg WPF, UWP, WinRT, XAML 2 12.09.2014 12:41
Cчитывание\запись файла Dizelektwo Win Api 2 06.04.2012 00:07
Cчитывание информации из memo N.i.k.o.l.a.y. Общие вопросы Delphi 5 20.03.2012 18:36
Cчитывание с файла СобачийКусок Visual C++ 1 04.10.2011 22:11