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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2013, 17:30   #1
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
Сообщение Списки С++

Подскажите, в чем ошибка моей программы? Хочу создать список, но не получается:

Безымянный1.jpg
Безымянный2.jpg

Это текстовый файл, из которого я беру данные:
Безымянный3.jpg
Jeckor вне форума Ответить с цитированием
Старый 11.11.2013, 19:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Что не получается?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 18:40   #3
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию

Список просто не выводится на экран. Ошибок никаких не выдаёт, но стоит запустить, как программа тут же выключается.
Jeckor вне форума Ответить с цитированием
Старый 14.11.2013, 18:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Понятно. У тебя два варианта:
1) пройти по программе отладкой (F7-F8 клавиши) и выяснить на какой именно строке падает
2) Выложить сюда исходник, чтоб форумчане могли потестировать.

Дописано:
Пока что я вижу ошибку в том что ты передаешь в Print не указатель.
I'm learning to live...

Последний раз редактировалось Stilet; 14.11.2013 в 18:55.
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 18:52   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Понятно. У тебя два варианта:
1) пройти по программе отладкой (F7-F8 клавиши) и выяснить на какой именно строке падает
2) Выложить сюда исходник, чтоб форумчане могли потестировать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 18:57   #6
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
По умолчанию

Ну я конечно попробую протестировать, но от помощи не откажусь)

Код:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>

struct Tovar
{
	char name[30];
	int count;
	float cena;
};

struct ElSpis
{
	Tovar info;
	ElSpis *next;
};

ElSpis *CreateSpisok(ElSpis *head);

void Print(ElSpis *head);

int _tmain(int argc, _TCHAR* argv[])
{
	ElSpis head;
	ElSpis *ElSpis;
	head=*CreateSpisok(ElSpis);
	Print(ElSpis);
	return 0;
}

ElSpis *CreateSpisok(ElSpis *head)
{
	FILE *f;
	f=fopen("f.txt","r");
	head = new ElSpis;
	head->next = 0;
	ElSpis *p = head;
	while (!feof(f))
	{
		p ->next= new ElSpis;
		p = p->next;
		fscanf(f,"%s%d%f", &p->info.name, &p->info.count, &p->info.cena);
	}
	p->next = 0;
	fclose(f);
	return head;
}

void Print(ElSpis *head)
{
	ElSpis *p = head->next;
	while (p)
	{
		printf("%s %d %.1f\n", p->info.name, p->info.count, p->info.cena);
		p=p->next;
	}
}
Jeckor вне форума Ответить с цитированием
Старый 14.11.2013, 19:11   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код выложил - хорошо.
Тестирни. Не получится - напишешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2013, 19:38   #8
Jeckor
Пользователь
 
Регистрация: 27.10.2013
Сообщений: 22
Радость

Всё нормально, я просто криво вызывал функции в main. Нужно так:

Код:
int _tmain(int argc, _TCHAR* argv[])
{
	struct ElSpis *head=0;
	head=CreateSpisok(head);
	Print(head);
	return 0;
}
Jeckor вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Списки...(Си) Чубук Помощь студентам 0 01.05.2012 22:46
Списки SasukeUciha Помощь студентам 2 16.10.2011 19:18
Списки! KOPC1886 Помощь студентам 2 17.09.2011 08:35
C++ Списки sir.andrey Помощь студентам 17 12.07.2011 14:28