Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23

Динамический массив строк. Ввод / вывод

31.05.2010, 05:59. Показов 4209. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!=) Помогите разобраться. Пишу функцию удаления строки из файла. организовал следующим образом, записал все что есть в файле в динамический массив строк. удалил нужную строку в массиве. потом пытаюсь вывести информацию на экран которая в массиве, а там аброкадабра(((
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
void del(void)
{
    FILE *BD;
    Persson p;
    int IDbuf=1,i=0;
    
BD=fopen("d:\BD.dat","r");
        
        fscanf(BD,"%d%s%s%lf",&p.ID,p.lastName,p.firstName,&p.Oklad);
        while(!feof(BD))
        {
        fscanf(BD,"%d%s%s%lf",&p.ID,p.lastName,p.firstName,&p.Oklad);
        IDbuf++;
        }
        fclose(BD);
 
 
char **mas = new char*[256];
if ((BD=fopen("d:\BD.dat","r"))==NULL)
    {
        printf("Не возможно открыть фал BD.txt\n");
        return;
    }
        fscanf(BD,"%d%s%s%lf",&p.ID,p.lastName,p.firstName,&p.Oklad);
        mas[p.ID] = new char[p.ID,p.lastName,p.firstName,p.Oklad];
        while(!feof(BD))
        {
        mas[p.ID] = new char[p.ID,p.lastName,p.firstName,p.Oklad];
        fscanf(BD,"%d%s%s%lf",&p.ID,p.lastName,p.firstName,&p.Oklad);
        }
 
printf("ВВедите ID работника которого хотите удалить\n");
cin>>i;
delete mas[i];
 
for(i=0;i<IDbuf-1;i++) 
    printf("%s\n",mas);
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2010, 05:59
Ответы с готовыми решениями:

Динамический ввод и вывод данных в двумерный массив
Не могу реализовать ввод и вывод данных двумерного массива используя указатель на указатель, в чём проблема? cin &gt;&gt; *(*(p+n*i)+j); ...

Создать динамический массив. ввод,вывод и обработку элементов массива реализовать через функции
создать динамический массив. ввод,вывод и обработку элементов массива реализовать через функции

Ввод строки в динамический массив
Здравствуйте! Помоги пожалуйста разобраться со следующим: Как с клавиатуры ввести строковый литерал в символьный массив, расположенный...

31
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
01.06.2010, 17:52
Студворк — интернет-сервис помощи студентам
так оно тебе на экран и выводит, а потом можешь со второго в первый переписать если надо)))

задание конкретно какое?

Добавлено через 1 час 58 минут
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const int lll=3;
class student { public:
                int a;
                char b[256];
};
 
int main(){
    int ini=0; cout<<"ecli inizializir vvedite 1   "; cin>>ini;
    student ddd[lll];
    if (ini) {
    ofstream out ("222.txt",ios::binary);
    for (int i=0; i<lll; i++) {cin>> ddd[i].a>> ddd[i].b;} 
    out.write((char*)&ddd,sizeof ddd); 
    out.close();}
    ifstream fin ("222.txt",ios::binary);
    fin.read ((char*)&ddd,sizeof ddd);
    fin.close();
    for (int i=0; i<lll;i++)
    cout <<ddd[i].a<<" "<<ddd[i].b<<endl;
    int l=0;  cin>>l; // кого хотим удалить
    int i;
    
    for (i=(l-1); i<lll-1; i++) 
    ddd[i]=ddd[i+1]; ddd[i].a=0;ddd[i].b[0]='0';// удалили как бы 
    for (int i=0; i<lll;i++)
    cout <<ddd[i].a<<" "<<ddd[i].b<<endl;
    ofstream kout ("222.txt",ios::binary);
    kout.write((char*)&ddd,sizeof ddd);
    kout.close();
 
    cin.get();
    return 0;}
усли с классами то как то так)))
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 01:39  [ТС]
задание)) вот оно))
В разделе 3 курсовой работы спроектируйте классы.
Базовый класс включает конструктор с параметрами для создания объектов в динамической области памяти,
деструктор, сообщающий об уничтожении объекта. Производный класс включает конструктор с параметрами и с списком
инициализаторов, передающий данные конструктору базового класса, переопределенные методы необходимые для работы
с компонентами объектов и обязательно переопределить операторы ввода и вывода. Программа
должна включить виртуальные функции. Напишите программу демонстрации обработки массива(или связанный список)
объектов объявленных классов, используя соответствующее меню.
0
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 15:03
нужно уточнить ! Создание объектов или выделение памяти для членов класса и их инициализация, в конструкторе; если верно то как у тебя написано то одолевают смутные сомнения, нужно поинтересоваться у местных гуру ???
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 15:26  [ТС]
хз))) лично мне дизайнеру это тааааак дуго даётся что ппц)) а сдать хвост ну оч. нужно)) купленная курсовая не прокатывает))) поэтому разбераюсь сам... я повис на простой вещи в принципе, это затолкать строку из файла в динамический массив строк, а потом из этого массива ввести в файл ну или хотя бы на экран...
и времени мало остаётся, обидно если выгонят(( 3 курса уже отучился(
0
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 15:38
я так понял что тебе нужно не строку из файла затолкать (это раз плюнуть) а прочитать данные из файла в класс и с ним уже работать
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 15:40  [ТС]
не, с классам там проблем нет, мне именно строку вида
2 какашкин саша 900.00
закинуть в этот массив, а потом прочитать, вот еннто могешь помочь? Ну, ооочень нужно)
0
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 15:57
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main(){
        ifstream in ("111.txt");
        //ofstream out ("222.txt");
        string temp [40];       
        string a;
        int k=0; 
while (getline (in,a)){
        a+="\n";
        temp[k]=a; k++;}
for (int i=0; i<=k; i++) cout<<i<<" "<< temp[i];
        
    
 
return 0;}
вот самый простой метод без танцев с бубном(если можно юзать стринги они и так динамически выделяются) если не подойдет будем с твоим массивом разбираться;
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 16:28  [ТС]
хм, не то кажись или опять чот не так понял(((
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
#include <iostream>
#include <fstream>
#include <string>
#include <stdio.h>
using namespace std;
 
 
int main()
{
        ifstream in ("DB.dat"); //это так понял открывает файл
                string temp [40];      //это размер строк временных 
        string a; //это строки с файла
                int k=0; //счетчик
while (getline (in,a)) //цикл тока не понял как он работает
{
   a+="\n";
   temp[k]=a; k++;
}
for (int i=0; i<=k; i++) 
    cout<<i<<" "<< temp[i]; //и хрен он что выводит
           
return 0;
cin.get();
}
вообщем не получилось(((
0
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 18:06
ifstream in ("D:\\DB.dat"); или как там у тебя диск называется, если в текстовом формате запись то нормально прочитает;

Добавлено через 14 минут
[quote=gluck-a;773925]while (getline (in,a)) //цикл тока не понял как он работает[/quote
getline (in,a)) считывает одну строку из потока(in) и присваивает это зачение а, когда доходим до конца файла ф-я возвращает false и цикл прерывается, к а добовляем символ перехода на новую строку при прочтении он теряется
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 19:15  [ТС]
поменял на текстовый как вы водил один единственный 0 на экран так и выводит((( или я опять чот не так понял?
0
37 / 37 / 2
Регистрация: 13.05.2010
Сообщений: 81
02.06.2010, 19:18
я ж те путь к файлу подправил смотри пост ifstream in ("D:\\DB.dat"); оно и в датовском прочитает важно как в самом файле информация записана
1
0 / 0 / 0
Регистрация: 28.05.2010
Сообщений: 23
02.06.2010, 20:57  [ТС]
Странно, но, что *.dat, что *.txt - выводит 0, в файле инфа текстовая. а с моим массивом сложно разобраться?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.06.2010, 20:57

Ввод данных в динамический массив из файла
написал программу, вроде все по правилам,только почему-то каждый раз переходит по стрелке &quot;файл не открыт&quot; #include...

Ввод данных в динамический массив из файла
В задаче написано: введение данных в динамический массив делать из файла. Как это?

Динамический массив. Ввод размерности с клавиатуры
Вечер добрый. Прошу помощи у Вас. Суть просьбы : создать динамический массив(квадрат) с размерностью n, n (вводится с клавиатуры)....

Ввод данных в двумерный динамический массив
Добрый вечер! Осваиваю уже третий день двумерные массивы в С++, но каким образом они создаются до сих пор не понятно. У меня было...

Ввод данных в динамический массив структур
Помогите правильно написать функцию - сколь не пробовал, не получается - getinfo(), которая требует ввода данных о студентах. Она...


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

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru