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

Строки в консоли и файлах(потоках).Зацикливание - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Класс, производный класс, паблик-класс http://www.cyberforum.ru/cpp-beginners/thread996191.html
Задание: Создать класс колесо, которое имеет радиус. Определить конструкторы и метод доступа. Создать класс машин, содержащий класс колесо. Дополнительно есть марка (указатель на строку), цена....
C++ покупка товара Вообщем суть проблемы: мне надо сделать такое задание: Создайте программу: с базовым классом Справочник, который включает в себя следующие данные-элементы: • Наименование продукции; • Код... http://www.cyberforum.ru/cpp-beginners/thread996178.html
Злой компилятор C++
Почему в данной программе компилятор ругается на строку 2019 и 1120 ? #include <iostream> using namespace std; struct Distance { int feet; float inches; };
Дан текстовый файл с неизвестным количеством вещественных чисел. Написать функцию для определения числа, имеющего максимальную и минимальную дробную ч C++
Доброго дня всем! помогите пожалуйста!! Для Borland C++ 6 Дан текстовый файл с неизвестным количеством вещественных чисел. Написать функцию для определения числа, имеющего максимальную и...
C++ Выполнение pe из массива байт http://www.cyberforum.ru/cpp-beginners/thread996170.html
Здравствуйте All. Имеется массив байт (исполняемый файл) в проекте подключен как заголовочный файл после компиляции к которому я могу обращаться. Резервирую память, выделяю, а дальше необходим...
C++ использовать функцию #include <iostream> using namespace std; int main() { setlocale(0,""); int n; cout << "Задайте размерность массивов:\n "; cin >> n; подробнее

Показать сообщение отдельно
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 2,004
04.11.2013, 18:44
Цитата Сообщение от triadec_96 Посмотреть сообщение
Можете посоветовать пожалуйста какой-то другой алгоритм,ато я уже совсем запутался.
ну я бы сделал след образом, создаем файл, заполняем его как "название улицы , кол-во зданий, год", заполнял бы названия улиц через string, потом int - кол-во зданий, и int - год(ну или в 1 стринг черещ пробелы, тут не особо разница), это была бы одна строка. Всё это было бы в цикле, его можно либо организовать по кол-ву строк, либо бесконечно до ввода контрольного слова , например "quit/exit" итп
затем возвращаемся в начало файла через f.clear(); f.seekg(0); , и начинаем считывать либо в структуру, либо в массив, либо в объект, тут уже придумать можно много, либо считывая кол-во зданий от ' ' до ' ', а года от ' ' до '\n' , либо проверяя являются ли они частями( есть готовые функции в STL), либо игнорируя сколько то первых символов.
Ну и потом сравнивать год структуры или объекта и складывать кол-во зданий.

Добавлено через 1 минуту
попробую написать через объекты сейчас

Добавлено через 19 часов 4 минуты
честно говоря забил делать это через объекты т.к. надо разбираться с выделением памяти и указателями, сделал проще
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
#include <iostream>
#include <fstream>
#include <conio.h>
#include <string>
#include <iomanip>
#include <cstdlib>
using namespace std;
 
int main()
{
    int sum=0;
    int counter=0;
    int s,cntr;
    cntr=0;
    int nb, year;
    string namefile;
    cout<<"Please enter created file name:  ";
    cin>>namefile;
    namefile.append(".txt\0");
    cout<<"Created file:    "<<namefile;
    ofstream ofs(namefile.c_str()); //создаем сам файл т.к. fstream его не создаст
    ofs.close();
    fstream f;
    f.open(namefile.c_str());//создание потока
    cout<<"\nInput the number of strings:   ";
    cin>>s;//количество строк в файле
    string str;
    for(int i=0;i<s;i++)//считывание строк с консоли и перевод в поток
    {
    cout<<"String number "<<i+1<<endl;
    cout<<"please enter street name:    ";
    cin>>str;
    f<<str<<"   ";
    cout<<"please enter number builds:  ";
    cin>>nb;
    cout<<"please enter year of builds: ";
    f<<right<<nb<<"   ";
    cin>>year;
    f<<right<<year<<"\n";
    cntr++;
    }
    f.clear();
    f.seekg(0);
    int counterIndexArray=0;
    int *cntrNumber=new int[s];
    int *cntYear=new int[s];
        while(!f.eof())
        {
 
        f>>str;
        if (f.eof())
        break;
            switch (counter)
            {
            case 0:
            cout<<"\nName of street:"<<str<<endl;
 
            break;
 
            case 1:
            cout<<"number:"<<str<<endl;
            cntrNumber[counterIndexArray]=atoi( str.c_str() );
            break;
 
            case 2:
            cout<<right<<"year:"<<str<<endl;
            cntYear[counterIndexArray]=atoi( str.c_str() );
            break;
            }
        counter++;
            if (counter==3)
            {
            counterIndexArray++;
            counter=0;
            }
        }
    int valYear;
    cout<<"\nPlease enter year:";
    cin>>valYear;
    for (int i=0;i<s;i++)
    {
    if (cntYear[i]==valYear)
    sum+=cntrNumber[i];
    }
    cout<<"sum="<<sum;
    f.close();
    return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru