Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 01.01.2021
Сообщений: 70
1

Чтение из файла и запись в массив этих данных

15.11.2022, 01:47. Показов 336. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Код использует хэш таблицу и алгоритм поиска в ней.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
#define N 5
#define EMPTY -1
struct HashT
{
    string name;
    int amount;
    string key;
    int adr;
};
HashT hashTabl[N];
string keys[N] = { "2112", "3435", "7658", "1236", "1876"};
string name[N] = { "Milano", "Paris", "berlin", "London", "Kiyv"};
int Hash(string key)
{
    int addr = 0;
    for (string::iterator it = key.begin(); it != key.end(); ++it)
        addr += (int)*it;
    return (addr % N);
}
int Hash(int addr)
{
    return (addr % N);
}
void Init(void)
{
    for (int i = 0; i < N; i++)
        hashTabl[i].adr = EMPTY;
}
int Insert(string key, int adr)
{
    int addr, a1;
    addr = Hash(key);
    if (hashTabl[addr].adr != EMPTY)
    {
        a1 = addr;
        do
        {
            addr = Hash(addr + 1);
        } while (!((addr == a1) || (hashTabl[addr].adr == EMPTY)));
        if (hashTabl[addr].adr != EMPTY)
            return 0;
    }
    hashTabl[addr].key = key;
    hashTabl[addr].adr = adr;
 
    return 1;
}
int Search(string key)
{
    int addr, a1;
    addr = Hash(key);
    if (hashTabl[addr].adr == EMPTY)
        return EMPTY;
    else
        if (hashTabl[addr].key == key)
            return hashTabl[addr].adr;
        else
        {
            a1 = Hash(addr + 1);
 
            while ((hashTabl[a1].key != key) && (a1 != addr))
                a1 = Hash(a1 + 1);
            if (hashTabl[a1].key != key)
                return EMPTY;
            else
                return hashTabl[a1].adr;
        }
}
int main(void)
{
 
    int i, res;
    string key;
    Init();
    cout << "\nKeys -> ";
    for (i = 0; i < N; i++)
        cout << keys[i] << " ";
    for (i = 0; i < N; i++)
        Insert(keys[i], i);
    cout << "\nHashed table (key-adr)" << endl;
    for (i = 0; i < N; i++)
        cout << " " << hashTabl[i].name << " " << hashTabl[i].key << "--" <<
        hashTabl[i].adr << endl;
    cout << "\n";
    for (i = 0; i < N; i++)
    {
        cout << " Input searched keys -> ";
        cin >> key;
        res = Search(key);
        if (res == EMPTY) cout << " not search \n";
        else cout << " " << res << "\n";
    }
    
}
Но как мне прочитать и записать эти данные
C++
1
2
string keys[N] = { "2112", "3435", "7658", "1236", "1876"};
string name[N] = { "Milano", "Paris", "berlin", "London", "Kiyv"};
с помощью файла?
Файл записан как на скриншоте.
Попробовал вот так, но выдаёт ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
string keys[N];
string name[N];
string line;
 
ifstream in("D:\\hello.txt"); 
if (in.is_open())
{
    while (getline(in, line))
    {
        cin >> keys[N] >> name[N];
    }
}
 
HashT hashTabl[N]; 
 
in.close();
Изображения
 
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2022, 01:47
Ответы с готовыми решениями:

Чтение данных из файла и запись в массив
Я в этом новичок. В итоге имею файл в котором есть список команд друг под другом, пример: А - В счет 2 2 С - Д счет 0 2 данные...

Чтение данных из файла, запись в массив структур
Всем привет, помогите, пожалуйста, с программой. Суть такова: имеется файл вида нужно записать данный файл в массив структур, как...

Чтение и запись данных из текстового файла в массив
задача заключается в том, что надо с текстового файла считать данные( фио. пол.год. 1 предмет(баллы), 2 предмет, 3 предмет, средний балл(...

3
Лежебока
 Аватар для Donkix
328 / 244 / 95
Регистрация: 12.05.2021
Сообщений: 1,429
Записей в блоге: 2
15.11.2022, 01:50 2
Считывание из файла идёт через его дескриптор
0
1 / 1 / 0
Регистрация: 01.01.2021
Сообщений: 70
15.11.2022, 03:50  [ТС] 3
подскажите как это реализовать?
0
Модератор
 Аватар для long399
2842 / 1794 / 932
Регистрация: 16.10.2013
Сообщений: 5,176
Записей в блоге: 15
15.11.2022, 07:00 4
Лучший ответ Сообщение было отмечено Kajletsk1y как решение

Решение

Цитата Сообщение от Kajletsk1y Посмотреть сообщение
подскажите как это реализовать?
C++
1
2
3
4
5
6
ifstream in("D:\\hello.txt"); 
if (in.is_open())
{
    for (int i = 0; i < N; i++) in >> keys[i];
    for (int i = 0; i < N; i++) in >> names[i];
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.11.2022, 07:00
Помогаю со студенческими работами здесь

«Создание файла. Запись и чтение данных. Запись и чтение блоков данных из файла» Переделайте на с С++ на С
#include&lt;iostream&gt; #include&lt;ctime&gt; #include&lt;fstream&gt; #include&lt;random&gt; using namespace std; int main() { ofstream...

Чтение из файла определённого места и сортировка данных исходя из этих данных
Есть некий текстовый документ, содержащий информацию о посещении сайта в формате: Например 12.5.76.200 04:23 Mon Цель:...

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

При чтении данных из 1 файла и запись этих данных во 2 файл дублируются последние строки
Когда считываю данные из одного файла и переношу эти же данные в другой файл, у меня дублируются строки ifstream...

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
WebAssembly в Kubernetes
stackOverflow 03.03.2025
В современной экосистеме облачных технологий WebAssembly (Wasm) становится все более значимым компонентом, предлагая уникальный подход к выполнению кода в распределенных системах. Эта технология. . .
GitHub Actions или Jenkins: Выбираем CI/CD платформу
stackOverflow 03.03.2025
Непрерывная интеграция и развертывание (CI/ CD) изменили подход к разработке программного обеспечения, превратив его в бесшовный процесс от написания кода до развертывания в продакшн. GitHub Actions и. . .
Автоматизация тестирования Pull Request в Kubernetes: Интеграция с GitHub Actions и GKE
stackOverflow 03.03.2025
Масштабные проекты с использованием Kubernetes требуют надежной системы тестирования изменений перед их внедрением в продакшн-среду. Традиционный подход с ручной проверкой Pull Request не справляется. . .
Tестирование Pull Request в Kubernetes с помощью vCluster
stackOverflow 03.03.2025
При работе с микросервисной архитектурой критически важно обеспечить качественное тестирование каждого изменения перед его слиянием в основную кодовую базу. Однако тестирование Pull Request в. . .
Использование пакета Context в Golang
bytestream 03.03.2025
Управление параллельными процессами в современных приложениях - сложная задача, особенно когда речь идет о микросервисной архитектуре и распределенных системах. Пакет context в Go - это гибкое. . .
WebAssembly и Go: Работа с DOM и обработка ошибок
bytestream 03.03.2025
WebAssembly представляет собой технологию, позволяющую запускать низкоуровневый код в браузере практически на нативной скорости. Особенно интересные возможности открываются при использовании. . .
WebAssembly и Go: Создание высокопроизводи­­тельных веб-приложений
bytestream 03.03.2025
WebAssembly - это технология, изменившая подход к созданию высокопроизводительных веб-приложений. До появления WebAssembly JavaScript оставался единственным языком программирования, который понимали. . .
Контексты в Go: отмена, тайм-ауты и распространение
bytestream 03.03.2025
В многопоточном программировании существует множество ситуаций, когда необходимо прерывать выполнение горутин или ограничивать время их работы. Отсутствие грамотного управления параллельными. . .
WebSocket в Go: создание масштабируемых real-time приложений
bytestream 03.03.2025
Веб-приложения все чаще требуют обработки данных в режиме реального времени. Традиционный подход с использованием HTTP-запросов имеет существенные ограничения для таких сценариев. При каждом запросе. . .
Как дебажить в Go: Руководство по отладке
bytestream 03.03.2025
Отладка в Go имеет свои особенности, связаные с строгой типизацией, моделью конкурентности и управлением памятью. Go предоставляет богатый набор встроеных средств для отладки, которые дополняются. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru