Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
anton88-2006
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 5
#1

удаление списка в с++ - C++

24.01.2011, 20:58. Просмотров 1418. Ответов 12
Метки нет (Все метки)

всем привет!
Начал работать в консольных приложениях.
Проблема такова: с помощью консоли я создаю список в текстовом документе.
После создания этого списка, с помощью консоли я смог бы этот список подкорректировать, тобишь добавить товар, изменить, удалить.
Пример:
15487 чайник 49,99
14489 телефон 119 99,

так идет лист на сто строк. К примеру у номера 6 упала цена, тогда я вызываю его через консоль и изменяю, или удаляю. Причем удаление или изменении не должно повлиять на другие товары.
Спасибо за ответы.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2011, 20:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос удаление списка в с++ (C++):

Написать код программы, выполняющей растяжку списка и вставку, удаление из списка и сжатие списка - C++
Люди ПОМОГИТЕ осталось совсем мало , мне нужна помощь!!! написать код программ: 1) Написать код программы, выполняющей растяжку...

Удаление элемента списка и всего списка - C++
Компилируется, но не работает. Что и как исправить? #include <cstdlib> #include <iostream> #include <cstring> #define M 5 ...

Удаление элементов из односвязного списка списка - C++
Привет всем знатокам, суровым программистам и профессионалам своего дела. Засел за реализацией списка и что то пока не могу понять. Задача...

Формирование упорядоченного списка из целых чисел; удаление из списка отрицательные чисел и удвоение положительных - C++
Составить программу, которая: • обеспечивает первоначальный ввод целых чисел и формирует из них упорядоченного списка; • затем ...

Удаление из списка - C++
Здравствуйте! Помогите с удалением элемента из списка, требуется удалить все положительные элементы, в коде программы кусок где я пытался...

Удаление из списка - C++
Привет, всем. Помогите разобраться: почему список выводится наоборот - с последнего элемента по первый после ввода данных. Все работает. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
25.01.2011, 08:36 #2
загружаешь весь списов в массив
делаешь что нужно и сохраняешь его обратно
0
anton88-2006
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 5
25.01.2011, 22:49  [ТС] #3
Цитата Сообщение от D@rkD@iver Посмотреть сообщение
загружаешь весь списов в массив
делаешь что нужно и сохраняешь его обратно
а вот здесь не много по подробнее.
ну открыл я к примеру список.
Код
fscanf(text.txt,"%i %s %i", Nr[n],Name[n],Date[n]);
printf(text.txt,"%i %s %i", Nr[n],Name[n],Date[n]");
как мне удалить или поменять что нить из списка?
З.Ы язык с неделю изучаю, так что не будь ко мне слишком строг)
если возможно, объясни наглядным примером как это сделать
0
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
26.01.2011, 07:15 #4
C++
1
2
3
4
5
Record a[100];
for (int i=0; i<n; i++)
{
       fscanf(f, "%i %s %i", &a[i].Nr,&a[i].Name,&a[i].Date);
}
потом работаешь с этим массивом изменяешь удаляешь и тд
а потом сохраняешь его обратно
C++
1
2
for (int i=0; i<n; i++)
    fprintf(f, "%i %s %i\n", a[i].Nr,a[i].Name,a[i].Date);
0
anton88-2006
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 5
26.01.2011, 22:02  [ТС] #5
спасибо за ответ)
только у меня появилась неожиданная проблемка.
задумка в данный момент такова, что моя программка состоит из нескольких маленьких программ. Только вот они не хотят запускаться, вот программа
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
int Zahl;
 
struct area
{
    char Warenbezeichnung[100];
    int Teilenummer, Anzahl, Speicherort; 
}; 
int _tmain(int argc, _TCHAR* argv[])
{
    
    printf("Guten Tag!\n Um Programm zu bedienen mГјssen sie nur jeweilige Ziffer drГјcken.\n Neue Liste hinzufГјgen drГјcken sie <1> ");
    scanf ("%i",&Zahl);
    switch (Zahl)
    {
    case 1: void WareHinzufГјgen(); break;
            
    }
    
    return (0);
}
void WareHinzufГјgen()
{
    FILE*Liste;
    char DateiName[256];
    area Feld[50];
 
    printf("DateiName angeben > ");
    scanf("%s",DateiName);
    
    do
    {
        Liste=fopen("Liste.txt","r+");
        area Nr;
        printf("Warenbezeichnung:  ");
        scanf("%s",Nr.Warenbezeichnung);
        printf("Teilenummer");
        scanf("%i",Nr.Teilenummer);
        printf("Anzahl");
        scanf("%i",Nr.Anzahl);
        fprintf(Liste,"%s %i %i",Nr.Warenbezeichnung,Nr.Teilenummer,Nr.Anzahl);
        fclose(Liste);
 
    } while(1);
 
 
}
после нажатия "1" прога молниеносно закрывается, почему?
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.01.2011, 07:02 #6
C
1
scanf("%i",Nr.Teilenummer);
C
1
scanf("%i", &Nr.Teilenummer);
и так далее

файл не нужно в цикле открывать
0
D@rkD@iver
111 / 111 / 3
Регистрация: 01.10.2008
Сообщений: 876
27.01.2011, 07:58 #7
anton88-2006,
char Zahl;
C++
1
2
3
4
5
6
 scanf ("%c",&Zahl);
        switch (Zahl)
        {
        case '1': void WareHinzufьgen(); break;
                        
        }
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
27.01.2011, 08:07 #8
Цитата Сообщение от anton88-2006 Посмотреть сообщение
WareHinzufьgen()
Цитата Сообщение от anton88-2006 Посмотреть сообщение
WareHinzufьgen

Не по теме:

там мягкий знак или B?)

0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.01.2011, 08:25 #9
насчёт int Zahl; там и так работает
0
anton88-2006
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 5
29.01.2011, 20:31  [ТС] #10
спасибо с этой проблемой разобрался)
только в данный момент возник новый вопрос.
после того как я через консоль задал и сохранил текст, консоль должна его обратно считать на экран. У меня почему то считывает только последние строчки, в чем может быть проблема?
Код
void Listeherauslesen()
{	
	FILE*Liste;
	
	char DateiName[256];
	Item Feld[50];
	printf("DateiName angeben > ");
	scanf("%s",DateiName);
	Liste=fopen(DateiName,"r");
	Item Nr;
	int a=1; 
	while (EOF!= fscanf(Liste,"%s %d %d",Feld[a].Warenbezeichnung,&Feld[a].Teilenummer,&Feld[a].Anzahl));
	{	

		printf("\n%s                 %d              %d\n\n",Feld[a].Warenbezeichnung,Feld[a].Teilenummer,Feld[a].Anzahl);
		a=a+1;
	}
	
	
	fclose(Liste);
	printf(" \n");
	scanf("%d",b);
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.01.2011, 06:54 #11
C++
1
int a=1;
надо с нуля начинать

Цитата Сообщение от anton88-2006
У меня почему то считывает только последние строчки
надо открыть файл после сохранение и посмотреть содержимое
0
anton88-2006
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 5
30.01.2011, 13:58  [ТС] #12
Цитата Сообщение от accept Посмотреть сообщение
C++
1
int a=1;
надо с нуля начинать


надо открыть файл после сохранение и посмотреть содержимое
"а" назначил с нуля. Получаю все ровно последнюю строчку.
Файл смотрел, сохраняется нормально. Там строчек 10. Пробовал в файле последнюю сроку изменить, на консоль выводится уже измененная строка из файла. Так что прога явно считывает с файла, только последнюю строку(
0
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
31.01.2011, 05:58 #13
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    for (int a = 0; a < 50; a++) {
        int retval = fscanf(
            Liste,
            "%s%d%d",
            Feld[a].Warenbezeichnung,
            &Feld[a].Teilenummer,
            &Feld[a].Anzahl
        );
        if (retval != 3) {
            printf("error\n");
            break;
        }
        printf(
            "\n"
            "%s                 "
            "%d              "
            "%d"
            "\n\n",
            Feld[a].Warenbezeichnung,
            Feld[a].Teilenummer,
            Feld[a].Anzahl
        );
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.01.2011, 05:58
Привет! Вот еще темы с ответами:

Удаление из списка - C++
Какова логика сдвига элементов при удалении элемента? после связывания соседних элементов удаляемой ячейки, но она остается занятой, хоть...

Удаление списка - C++
Помогите реализовать удаление списка: #include &lt;iostream&gt; using namespace std; class Node { public:

Удаление из списка - C++
контрольная с бинарным файлом. вопрос: в работе мне надо удалить из созданного списка( структура:номера вызывающего и вызываемого...

Удаление списка - C++
Здравствуйте! Для реализации Хэш таблицы с индексами от 0 до 9 создал структуру и класс. Хэш таблица хранит числа, ключ это остаток от...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.01.2011, 05:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru