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

проблева ввода строки - C++

Восстановить пароль Регистрация
 
AfoTax
 Аватар для AfoTax
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
08.05.2012, 21:16     проблева ввода строки #1
Пропускает ввод строки. Какого черта?)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
void main()
{
    int a;
    char str[44];
    cout<<"vvedite chislo\n";
    cin>>a;
    cout<<"vvedite stroku\n";
    cin.getline(str,44);
    cout<<str;
    cout<<endl;
    system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 21:16     проблева ввода строки
Посмотрите здесь:

C++ Проверка правильности ввода строки
C++ Программа для ввода строки от блондинки
C++ Выход в случае ввода пустой строки
Длина строки до ввода ? C++
C++ Время ввода строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 21:23     проблева ввода строки #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
using namespace std;
int main()
{
     int a;
    char str[44];
    cout<<"vvedite chislo\n";
    cin>>a;
    cout<<"vvedite stroku\n";
    cin.get();
    cin.getline(str,44);
    cout<<str;
    cout<<endl;
    system("pause");
 
    return 0;
}
Drygba
 Аватар для Drygba
503 / 445 / 34
Регистрация: 17.02.2012
Сообщений: 1,032
Записей в блоге: 1
08.05.2012, 21:23     проблева ввода строки #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
       #include<iostream>
using namespace std;
void main()
{
    int a;
    char str[44];
    cout<<"vvedite chislo\n";
    cin>>a;
    cin.get();
    cout<<"vvedite stroku\n";
    cin.getline(str,44);
    cout<<str;
    cout<<endl;
    system("pause");
}

Не по теме:

Infinity3000,

Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
08.05.2012, 21:25     проблева ввода строки #4
AfoTax, попробую на пальцах:
C++
1
2
3
    cin>>a; //вводим число и энтер (по привычке)
    cout<<"vvedite stroku\n";//в буфере для чтения всё ещё находится энтер
    cin.getline(str,44);//получаем энетр из буфера и думаем что ввод закончен
Варианты как это исправить:
1) Вводить в самом начале число пробел строка, например 2 string.
2)Убирать перевод строки с помощью cin.ignore().
AfoTax
 Аватар для AfoTax
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37
09.05.2012, 00:34  [ТС]     проблева ввода строки #5
Всем спасибо.
Yandex
Объявления
09.05.2012, 00:34     проблева ввода строки
Ответ Создать тему
Опции темы

Текущее время: 17:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru