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

Файловый ввод в структуру через запятую

20.12.2021, 12:02. Показов 423. Ответов 1

Студворк — интернет-сервис помощи студентам
Как в программе реализовать файловый ввод в структуру данных разделенных запятой
Пример файла info.txt: Иванов Иван Иванович, 9773672365, 12.10.2012, 12.10.2014,0,0
Петров Иван Васильевич, 9734672311, 22.01.2008, 01.11.2011,210,200
Васильев Илья Васильевич, 9714679805, 05.09.2010, 01.12.2012,0,2000
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
#include <iostream>
#include <fstream>
using namespace std;
int const col = 10;
struct info {
    char name[255];
    int number;
    char start[255];
    char stop[255];
    int indebtedness;
    int credit;
}Info[col];
struct service {
    char service_name[255];
    int code;
    float rate;
    char time[255];
};
struct service_client {
    int number;
    int code;
    char date[255];
    char time[255];
};
 
void AddInfo() {
    ifstream in;
    in.open("info.txt");
    int stLength;
    for (stLength = 0; stLength < col;stLength++) {
        in >> Info[stLength].name;
        in >> Info[stLength].number;
        in >> Info[stLength].start;
        in >> Info[stLength].stop;
        in >> Info[stLength].indebtedness;
        in >> Info[stLength].credit;
    }
    in.close();
}
 
void ViewInfo() {
    for (int i = 0;i < col;i++) {
        cout << "\n ФИО:\t" << Info[i].name;
        cout << "\t Номер телефона:\t" << Info[i].number;
        cout << "\t Дата заключения договора:\t" << Info[i].start;
        cout << "\t Дата окончания договора:\t" << Info[i].stop;
        cout << "\t Размер задолженности:\t" << Info[i].indebtedness;
        cout << "\t Допустимый кредит:\t" << Info[i].credit << endl;
    }
 
}
int main() {
    setlocale(0, "");
    char choice;
    do {
        cout << "Меню \n";
        cout << "1.Добавить \n2.Показать\n3.Выход" << endl;
        cin >> choice;
        switch (choice) {
        case '1':
            AddInfo();
            break;
        case '2':
            ViewInfo();
            break;
        case '3':
            exit(0);
            break;
        }
 
 
    } while (choice != '3');
}
Добавлено через 1 час 41 минуту
Переделал AddInfo()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void AddInfo() {
    ifstream inFile("info.txt");
    if (inFile.is_open())
    {
        string line;
        while (std::getline(inFile, line))
        {
            std::stringstream ss(line);
            for (int i = 0;i < col;i++) {
                getline(ss, Info[i].name, ',');
                getline(ss, Info[i].number, ',');
                getline(ss, Info[i].start, ',');
                getline(ss, Info[i].stop, ',');
                getline(ss, Info[i].indebtedness, ',');
                getline(ss, Info[i].credit, ',');
            }
            
        }
    }
}
Но теперь почему-то считывается только последняя строчка
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2021, 12:02
Ответы с готовыми решениями:

Файловый ввод в структуру через запятую
Файл имеет несколько данных разделенных запятой, при добавлении в структуру выдает ошибку: Вызвано исключение по адресу 0x7B0C5DC3...

Ввод через запятую
Программа от модератора Puporev’а. Обе программы работают, особенно вторая – с массивом. А вот к первой пожелание – как бы сделать...

Ввод в массив через запятую
Нужно ввести 5 переменных в массив через запятую, пример 1, 16, 21, 7, 11 Всем заранее благодарен за помощь

1
518 / 410 / 188
Регистрация: 08.04.2013
Сообщений: 1,750
20.12.2021, 12:20
for (int i = 0;i < col;i++) здесь ни к месту!
одна строчка, одно значение всегда с нуля????
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.12.2021, 12:20
Помогаю со студенческими работами здесь

Ввод данных в структуру через указатель на структуру
#include &quot;stdafx.h&quot; #include &quot;ctime&quot; #include &quot;iostream&quot; #pragma warning(disable : 4996) using namespace std; class...

Ввод слова и чисел через запятую
Добрый день Помогите пожалуйста решить задачу. Мне нужно написать интерактивный калькулятор матриц. Я застрял в одном месте. ...

Ввод данных через запятую, заполнение массива
Сколько ищу, никак не могу найти. Как можно сделать так, чтобы при вводе чисел в консоль (!через запятую!) заполнялся массив из 8 значений...

Создать структуру "Данные о читателях" (файловый ввод/вывод)
подскажите как открыть файл в котором содержатся данные о читателях, чтобы потом работать с ним как со структурой

Написать структуру "Список книг" (бинарный файловый ввод/вывод)
Здравствуйте, Дорогие форумчане! Всех с наступающим. Задача: написать 2 консольных приложения: 1-ое осуществляет вывод списка...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru