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

ifsream + разномастные данные полей структуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как массив сделать динамическим? http://www.cyberforum.ru/cpp-beginners/thread889992.html
нужно массив char street сделать динамическим.помогите пожалуйста( #include "stdafx.h" #include <iostream> #include <string.h> #include <conio.h> using namespace std;
C++ Как сделать, чтобы при запуске программы, пользователь выбирал как будет вводить значения Как сделать, чтобы при запуске программы, пользователь выбирал как будет вводится значения. Например: "Ввод с клавиатуры нажмите 6, ввод рандомно нажмите 7. http://www.cyberforum.ru/cpp-beginners/thread889991.html
Бинарное дерево C++
Только начал изучать тему "деревья". Подскажите в чем ошибка)#include <iostream> using namespace std; struct Node{ int data; Node *left; Node *right; } void Insert(int value, Node *tr) { if(tr==NULL){
C++ Графы кратчайший путь !
Помогите написать функцию для поиска кратчайшего пути между вершинами которые задаются с клавы я написал правда получилось что это самое минимальное расстояние_ void rasstoyanie(void) { int min=256; for (int k=0; k<cnt; ++k) for (int i=0; i<cnt; ++i) for (int j=0; j<cnt; ++j) {
C++ Решение системы линейных алгебраических уравнений http://www.cyberforum.ru/cpp-beginners/thread889975.html
Помогите пожалуйста с заданием: Нужно решить систему линейных алгебраических уравнений используя метод Гаусса с последовательным исключением переменных. http://s6.hostingkartinok.com/uploads/images/2013/06/ae73afd53ebd5b46751b8308093d4c95.png
C++ Определить является ли заданная квадратная матрица A n-го порядка симметричной относительно главной диагонали Разработать алгоритм и программу. Определить является ли заданная квадратная матрица A n-го порядка (2<=n<=10 – вводится пользователем) симметричной относительно главной диагонали. Элементы матрицы aij принимают значения в диапазоне . Заполнение матрицы осуществляется в соответствии с выбором пользователя: пользовательский ввод с клавиатуры; заполнение случайными числами в установленном... подробнее

Показать сообщение отдельно
FliXis
31 / 31 / 2
Регистрация: 17.09.2012
Сообщений: 155
04.06.2013, 00:39  [ТС]     ifsream + разномастные данные полей структуры
Цитата Сообщение от alsav22 Посмотреть сообщение
У вас этот цикл что делает?
C++
1
2
3
4
5
6
while (inFile.good())
    {
        ++count;
        inFile >> number;
        break;
    }
Жрет четверку из файла. А она потом идет в association *spip = new association[number]; т.к. в следующем цикле идет фор с записью в поля структуры.
Не придумал ничего лучше, как сделать отдельный блок.)
P.S> жрет он ее отменно и задуманное удалось, а вот со следующим блоком из-за того, что не смотря на стринг, он считает пробел за конец строки, получилась запара.

Добавлено через 22 минуты
С чарами тоже несоответствие типов. Сразу конец строки вписывает в себя
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
#include <iostream>
#include <string>
#include <fstream>
#include <cstdlib>
 
using namespace std;
 
const char Size = 100;
 
struct association
{
    char name[Size];
    double donation;
};
/////////////////////////////////////////////////
int main()
{
    system("chcp 1251 > nul");
 
    int number, count = 0;
    char file_name[Size];
    ifstream inFile;
 
    cout << "Пожалуйста введите название файла: ";
    cin.getline(file_name, Size);
    inFile.open(file_name);
    if (!inFile.is_open())
    {
        cout << "Файл " << file_name << " отсутствует!" << endl;
        exit(EXIT_FAILURE);
    }
 
    while (inFile.good())
    {
        ++count;
        inFile >> number;
        break;
    }
    association *spip = new association[number];
    while (inFile.good())
    {
        ++count;
        for (int j = 0; j < number; ++j)
        {
            inFile.getline(spip[j].name, Size);
            //inFile >> spip[j].name;
            inFile >> spip[j].donation;
        }
        break;
    }
 
    if (inFile.eof())
        cout << "Достигнут конец файла." << endl;
    else if (inFile.fail())
        cout << "Ввод прекращен из-за несоответствия типа данных!" << endl;
    else
        cout << "Ввод прекращен по неизвестной причине!" << endl;
    if (count == 0)
        cout << "Данные для обработки отсутствуют!" << endl;
    else
    {
        int lask = 0;
        if (number != 0)
        {
            cout << endl << "Великие Покровители: " << endl;
            for (int j = 0; j < number; ++j)
            {
                if (spip[j].donation >= 10000)
                    cout << "Меценат: " << spip[j].name << " внес: " << spip[j].donation << endl;
                else
                    ++lask;
                if (lask == number)
                    cout << "Отсутствуют." << endl;
            }
 
            lask = 0;
            cout << endl << "Покровители: " << endl;
            for (int j = 0; j < number; ++j)
            {
                if (spip[j].donation < 10000)
                    cout << "Меценат: " << spip[j].name << " внес: " << spip[j].donation << endl;
                else
                    ++lask;
                if (lask == number)
                    cout << "Отсутствуют." << endl;
            }
        }
        else
            cout << "Нет информации." << endl;
    }
    inFile.close();
    inFile.clear();
    delete [] spip;
 
    system("pause");
    return 0;
}
 
Текущее время: 23:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru