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

Некорректная работа cin.getline() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блок-схема к программе о структуре http://www.cyberforum.ru/cpp-beginners/thread1154561.html
блок схема к программе #include<iostream.h> #include<conio.h> struct bagaj { int kilkist; int vaga; char name; }bag; void main()
C++ Работа с объектами. Код вылетает сразу после инициализации элементов массива Код вылетает сразу после инициализации элементов массива. Не могу засечь в чем проблема. Не подскажете? Буду благодарен. #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; class Student { private: http://www.cyberforum.ru/cpp-beginners/thread1154548.html
Добавление элемента в конец списка C++
Сначала добавляет первый элемент, а далее не хочет? Посмотрите свежим глазом, а то я лагаю! void List::bound(char data) {if (!Head) { Head=new Element; Head->Next=NULL; Head->data=data; return; } Element*Tail=new Element; while (!Tail->Next) Tail=Tail->Next;
Вывести на печать текст в порядке возрастания длин строк C++
Пусть задан текст, представляющий собой последовательность строк. Признак конца текста вводится пользователем. Выведите на печать заданный текст в порядке возрастания длин строк.
C++ Ошибка в yvals.h - Syntax error:missing ';' before 'namespace' http://www.cyberforum.ru/cpp-beginners/thread1154522.html
Изучаю c++, раньше работал в codeblocks, теперь перешёл на студию и столкнулся с такой ошибкой: error C2143: syntax error : missing ';' before 'namespace'. Ошибка отправляет в файл yvals.h, где #endif /* __cplusplus */ #define _Restrict restrict #ifdef __cplusplus _STD_BEGIN (сюда) typedef bool _Bool; _STD_END #endif /* __cplusplus */
C++ Нужно найти самое распространенное женское имя в группе или классе Проблема с задачей. Нужно найти самое распространенное женское имя в группе или классе. Предположим что я объявил структуру (потому нужно при условии структуру). И теперь проверяю пол с помощью букв "m", "w". Тпер если имя женское заношу в новый массив. Теперь как-то нужно проверить распространенное это имя. #include <iostream> #define k 4 using namespace std; struct st1 { подробнее

Показать сообщение отдельно
pro100skif
0 / 0 / 0
Регистрация: 17.03.2014
Сообщений: 41

Некорректная работа cin.getline() - C++

22.04.2014, 21:03. Просмотров 248. Ответов 5
Метки (Все метки)

Доброго времени суток,господа знатоки. у меня есть двумерный массив char куда мне нужно записать строки и отсортировать но вот в чем проблема, первую строку cin.getline() считывает нормально но во во всех последующих пропускает первый символ, я так понимаю что это связано с тем, что в буфере ввода остается '/n'.Пробовал чистить буфер через cin.sync() но не помогло.Как решить данную проблему?(строка 62-70)
P.S. еще проблемка с функцией random() потому что она генерирует какую то непонятную абракадабру на непонятном языке, может это быть связано с тем что текст программа на английском а MVS2013 на русском?(78-85)
P.P.S программа еще не до конца дописана поэтому список параметров в функциях я дополню потом.
Заранее спасибо за помощь
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
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<conio.h>
#include<cstdio>
#include<time.h>
#include<string.h>
using namespace std;
void vertification(int& number);
void sort(int &);
void output(int &);
void manual(int &);
void random(int &);
const int N = 100;
char list[N][N];
char *addr[N];
int n;
 
 
int main()
{
    int repeat = 1;
    int trig = 0;
    do{
        system("cls");
        cout << "Enter the number of lines:";
        cin >> n;
        for (int i = 0; i < n; i++)
            addr[i] = list[i];
        cout << "To enter strings manually enter 1 or enter 2 to enter string randomly:";
        cin >> trig;
        if (trig == 1)
            manual(n);
        if (trig == 2)
            random(n);
        output(n);
        cout << endl;
        sort(n);
        output(n);
        cout << "Press ENTER to continiue or press ESC to exit." << endl;
        while (repeat != 13 || repeat != 27)
        {
            repeat = _getch();
            if (repeat == 13 || repeat == 27)
                break;
            cout << endl;
        }if (repeat == 27)
            break;
    } while (repeat != 27);
    return 0;
}
 
void vertification(int& number)
{
    while ((cin >> number).fail() || cin.get() != '\n')
    {
        cin.clear();
        cin.sync();
        cout << "Error, enter the integer:";
    }
}
 
void manual(int& n)
{
    for (int i = 0; i < n; i++)
    {
        cout << "Enter " << i+1 << " string:";
        cin.get();
        cin.getline(list[i],'/n');
    }
}
void output(int& n)
{
    for (int i = 0; i < n; i++)
    {
        cout <<"string "<<i+1<<":"<< list[i]<<endl;
    }
}
void random(int&n)
{
    srand(int(time(NULL)));
    int k = rand() % N + 1;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < k; j++)
            list[i][j] = rand() % 256;
}
void sort(int &n)
{
    char x[N];
    for (int i = n - 1; i >= 0; i--)
    {
        for (int j = 0; j < i; j++)
        {
            if (*addr[j]>*addr[j + 1])
            {
                strcpy(x, addr[j]);
                strcpy(addr[j], addr[j + 1]);
                strcpy(addr[j + 1], x);
            }
        }
    }
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru