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

getline по 2 раза - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений., http://www.cyberforum.ru/cpp-beginners/thread186743.html
нужно написать программку срочно(С++) ...О_опомогите пожалуйста) ВОТ УСЛОВИЕ: С клавиатуры вводятся целые числа. Признак конца ввода – 0. Определить количество минимальных значений.
C++ Из заданной строки получить только цифры В какой то строке цифры с перемешкой буквами. Из строки надо взять только цифры. Пример: dcfgvbhjn123456 Вывод: 123 456. Надо использовать указатели. Дублирование тем запрещено правилами форума (п. 3.4). Не плодите одинаковых тем. http://www.cyberforum.ru/cpp-beginners/thread186735.html
Методом деления отрезков C++
Здравствуйте ! Пытаюсь решить задачку на тему Решение нелинейных уравнений Методом деления отрезков пополам.. написал код для некоторой функции,но когда ввожу отрезки (a,b) абсолютно любые числа, значение f(x) компилятор выводит всегда 0,2 почему,никак понять не могу ? #include <iostream.h> #include <conio.h> #include <stdio.h>
C++ Сумма элементов массива, расположенных между первым и последним отрицательными элементами
12.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) сумму элементов массива с нечетными номерами; б) сумму элементов массива, расположенных между первым и последним отрицательными элементами. Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся в конце массива элементы заполнить нулями.
C++ не получается создать линейный список http://www.cyberforum.ru/cpp-beginners/thread186722.html
здравствуйте,собственно, возникла ошибка в функции заполнения нагруженного дерева. Реализую дерево в виде списка с двумя связями,где один указатель llink указывает на самого левого сына узла,а rlink на правого брата узла #include <stdio.h> /*объявим класс */ class Dictionary{ /*Создадим структуру для прeдставления элементов дерева */ struct node{
C++ Strings (Строки) Даны натуральные чила n, символы s1, ….sn. Удалить из данной последовательности все группы букв вида abcd. С++ подробнее

Показать сообщение отдельно
PointsEqual
ниначмуроФ
 Аватар для PointsEqual
832 / 516 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
05.11.2010, 21:18  [ТС]     getline по 2 раза
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
#include "stdafx.h"
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
 
COORD coord;
HANDLE console;
 
const int ROW = 25; //Размеры вселенной
const int COL = 80; //Размеры вселенной
std::vector<std::vector<bool> > currGeneration(ROW, std::vector<bool> (COL)); //Вселенная для старого поколения 
std::vector<std::vector<bool> > nextGeneration(ROW, std::vector<bool> (COL)); //Вселенная для нового  поколения
 
 
//Подсчитать количество соседей клетки 
int cntNeighbors(std::vector<std::vector<bool> > arr, int row, int col, int oi, int oj){
    int cnt = 0;
    for (int i = oi - 1; i < oi + 2; ++i)
        for (int j = oj - 1; j < oj + 2; ++j){
            if ( (i < 0 || j < 0) || (i >= ROW || j >= COL) || (i == oi && j == oj)) 
                continue;
            else if (arr[i][j]) ++cnt;
        }
    return cnt;
}
 
//Прорисовать клетку на экране
inline void drawCell(int i, int j, int color = 0){
    coord.X = j;
    coord.Y = i;
    SetConsoleCursorPosition(console,coord);
    SetConsoleTextAttribute(console, (WORD)((color << 4) | 0));
    std::cout << " ";
}
 
inline void Glider(std::vector<std::vector<bool> > &universe, int row, int col){
        universe[14][15] = 1;
        universe[15][15] = 1;
        universe[16][15] = 1;
        universe[16][14] = 1;
        universe[15][13] = 1;
}
 
inline void BlinkerP2(std::vector<std::vector<bool> > &universe, int row, int col){
    //#
    //#
    //#
    universe[14][15] = 1;
    universe[15][15] = 1;
    universe[16][15] = 1;
}
 
inline void LWSS(std::vector<std::vector<bool> > &universe, int row, int col){
    //#  #
    //    #
    //#   #
    // ####
    universe[14][14] = 1;  universe[16][14] = 1;  universe[17][16] = 1;
    universe[14][17] = 1;  universe[16][18] = 1;  universe[17][17] = 1;
    universe[15][18] = 1;  universe[17][15] = 1;  universe[17][18] = 1;
}
 
inline void BeaconP2(std::vector<std::vector<bool> > &universe, int row, int col){
    //##
    //##
    //  ##
    //  ## 
    universe[14][14] = 1;  universe[16][16] = 1;
    universe[14][15] = 1;  universe[16][17] = 1;
    universe[15][14] = 1;  universe[17][16] = 1;
    universe[15][15] = 1;  universe[17][17] = 1;
}
 
inline void ToadP2(std::vector<std::vector<bool> > &universe, int row, int col){
    // ###
    //###
    universe[14][14] = 1;  universe[15][13] = 1;
    universe[14][15] = 1;  universe[15][14] = 1;
    universe[14][16] = 1;  universe[15][15] = 1;
}
 
inline void MYBeaconP2 (std::vector<std::vector<bool> > &universe, int row, int col){
    // ####
    //####
    universe[14][14] = 1;  universe[15][13] = 1;
    universe[14][15] = 1;  universe[15][14] = 1;
    universe[14][16] = 1;  universe[15][15] = 1;
    universe[14][17] = 1;  universe[15][16] = 1;
}
 
inline void PulsarP3 (std::vector<std::vector<bool> > &universe, int row, int col){
    // 1###  3###
    //          
    //#    # #    #
    //#    # #    #
    //#    # #    #
    //  ###   ###
    //
    // 2###  4###
    //#    # #    #
    //#    # #    #
    //#    # #    #
    //   
    //  ###   ###
 
    //1                    //2                    //3                    //4
    universe[7][15] = 1;   universe[14][15] = 1;  universe[7][21] = 1;   universe[14][21] = 1;
    universe[7][16] = 1;   universe[14][16] = 1;  universe[7][22] = 1;   universe[14][22] = 1;
    universe[7][17] = 1;   universe[14][17] = 1;  universe[7][23] = 1;   universe[14][23] = 1;
    universe[9][13] = 1;   universe[15][13] = 1;  universe[9][20] = 1;   universe[15][20] = 1;
    universe[9][18] = 1;   universe[15][18] = 1;  universe[9][25] = 1;   universe[15][25] = 1;
    universe[10][13] = 1;  universe[16][13] = 1;  universe[10][20] = 1;  universe[16][20] = 1;
    universe[10][18] = 1;  universe[16][18] = 1;  universe[10][25] = 1;  universe[16][25] = 1;
    universe[11][13] = 1;  universe[17][13] = 1;  universe[11][20] = 1;  universe[17][20] = 1;
    universe[11][18] = 1;  universe[17][18] = 1;  universe[11][25] = 1;  universe[17][25] = 1;
    universe[12][15] = 1;  universe[19][15] = 1;  universe[12][21] = 1;  universe[19][21] = 1;
    universe[12][16] = 1;  universe[19][16] = 1;  universe[12][22] = 1;  universe[19][22] = 1;
    universe[12][17] = 1;  universe[19][17] = 1;  universe[12][23] = 1;  universe[19][23] = 1;
}
 
 
 
 
void setPoints(std::vector<std::vector<bool> > &universe, int row, int col){
    int n = 1;
    int i = 0;
    int j = 0;
 
    while(true){
        std::cout << "Введите координаты " << n << "-ой точки: ";
        std::cin >> i;
        std::cin >> j;
 
        if ( !i && !j) 
            break;
        else{
            universe[i][j] = true;
            ++n;
        }
 
    }
 
}
 
void loadUFromFile(std::vector<std::vector<bool> > &universe, int row, int col, std::string& pathToLoadFile){
 
    std::ifstream fin(pathToLoadFile.c_str(), std::ios::in);
 
    if (!fin){
        std::cerr << "Error open file";
        std::cin.get();
        std::cin.get();
        exit(1);
    }
 
    int tmp = 0;
    for (int i = 0; i < ROW; ++i)
        for (int j = 0; j < COL; ++j){
            fin >> tmp; 
           universe[i][j] = tmp ;
            //fin >> universe[i][j];
        }
 
    fin.close();
}
 
inline void showOptions() {
    std::cout << std::endl << "Выбирете действие:" << std::endl;
    std::cout << "===================================" << std::endl  << std::endl;
    std::cout << "0) Загрузка модели из файла" << std::endl;
    std::cout << "1) Расставить точки в ручную" << std::endl;
    std::cout << "___________________________________" << std::endl<< std::endl<< std::endl<< std::endl << std::endl;
 
    std::cout << "Выбирете модель для показа:" << std::endl;
    std::cout << "===================================" << std::endl  << std::endl;
    std::cout << "2) Маяк" << std::endl;
    std::cout << "3) Шора" << std::endl;
    std::cout << "4) Пульсар" << std::endl;
    std::cout << "5) Жаба" << std::endl;
    std::cout << "6) Близнецы" << std::endl;
    std::cout << "7) Планер" << std::endl;
    std::cout << "8) Легкий космический корабль" << std::endl;
    std::cout << "___________________________________" << std::endl;
}
 
 
 
 
int _tmain(int argc, _TCHAR* argv[]){
    console=GetStdHandle(STD_OUTPUT_HANDLE);
    setlocale( LC_ALL,"Russian" );
    
    showOptions();
 
    int choise = 0;
    std::cin >> choise;
    system("cls");
    
    switch(choise){
        case 0: {
                    std::string path("");
                    std::cout << "Введите имя файла: ";
                    getline(std::cin, path);
                    getline(std::cin, path);
                    loadUFromFile(currGeneration, ROW,COL, path);  
                    break;
                }
        case 1: setPoints(currGeneration, ROW,COL);  break;
        /*Oscillators*/
        case 2: BeaconP2(currGeneration, ROW,COL);   break;
        case 3: BlinkerP2(currGeneration, ROW,COL);  break;
        case 4: PulsarP3(currGeneration, ROW,COL);   break;  
        case 5: ToadP2(currGeneration, ROW,COL);     break;
        case 6: MYBeaconP2(currGeneration, ROW,COL); break;
        /*Spaceships*/
        case 7: Glider(currGeneration, ROW,COL);     break;
        case 8: LWSS(currGeneration, ROW,COL);       break;
        
        default: return EXIT_FAILURE;
    }
 
    
    while(true){
        //Определить будет ли жить клетка в следующем поколении
        for (int i = 1; i < ROW-2; ++i)
            for (int j = 1; j < COL-2; ++j)
                if (currGeneration[i][j] || currGeneration[i][j+1] || currGeneration[i][j-1] || currGeneration[i+1][j] || currGeneration[i-1][j]){          
                    int tmp = cntNeighbors(currGeneration, ROW,COL, i, j);
                    nextGeneration[i][j] = ((tmp == 3) ||   ((tmp == 2) && currGeneration[i][j])) ? (true) : (false);
                }
    
        //Скопировать новую вселенную(новое поколение) в старую
        for (int i = 0; i < ROW; ++i)
            for (int j = 0; j < COL; ++j)
                currGeneration[i][j] = nextGeneration[i][j];
 
        //Прорисовать вселенную
        for (int i = 0; i < ROW; ++i)
            for (int j = 0; j < COL; ++j)
                currGeneration[i][j] ? (drawCell(i,j,12)) : (drawCell(i,j));    
 
        //Задержать на 400мс и очистить экран
        Sleep(400);
        system("cls");
    }
 
    return EXIT_SUCCESS;
}
Добавлено через 2 минуты
где то в инете прочитал вообще что у getline это глюк такой
 
Текущее время: 11:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru