Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 10.08.2015
Сообщений: 40
1

Почему getline не считывает строку при первом проходе цикла?

02.11.2015, 14:12. Просмотров 1010. Ответов 1
Метки нет (Все метки)

В данной функции:
C++
1
2
3
4
5
6
7
8
void ArrayStr::InputArr(void)
{
    cout << "Введите строки длинной не более " << range << " символов: \n";
    for (int i = 0; i < NumOfStr; i++)
    {
        getline(cin, Massiv[i]);
    }
}
при первом проходе цикла не выполняет getline. При последующих - считывает нормально каждую строку.

Вот весь код:
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
#include <iostream>
#include <string>
const int range = 32;
using namespace std;
 
class ArrayStr {
private:
    string *Massiv;
    int NumOfStr;
public:
    ArrayStr(int numStr)
    {
        Massiv = new string [numStr];
        NumOfStr = numStr;
    }
    ~ArrayStr()
    {
        delete []Massiv;
    }
    void InputArr(void);
    void OutputArr(void);
    void OutputStr(int);
};
 
void ArrayStr::InputArr(void)
{
    cout << "Введите строки длинной не более " << range << " символов: \n";
    for (int i = -1; i < NumOfStr; i++)
    {
        cout << i << ". ";
        getline(cin, Massiv[i]);
    }
}
 
void ArrayStr::OutputArr(void)
{
    cout << "Массив строк:\n";
    for (int i = 0; i < NumOfStr; i++)
    {
        cout << i+1 << ". " << Massiv[i] << "\n";
    }
}
 
void ArrayStr::OutputStr(int num)
{
    cout << num << " строка: " << Massiv[num] << "\n";
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    int nStr;
    cout << "Введите количество строк: ";
    cin >> nStr;
    ArrayStr MyArray = ArrayStr(nStr);
    MyArray.InputArr();
    MyArray.OutputArr();
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2015, 14:12
Ответы с готовыми решениями:

Функция getc (FILE*) при первом вызве считывает НЕ ПЕРВЫЙ символ файла.Почему?
Друзья! Здравствуйте! Вот код. #include &lt;iostream&gt; using namespace std; int main () { ...

Datareader - при первом проходе некорректная работа
Столкнулся с небольшой проблемой чтения информации из базы данных. При открытии проекта в студии...

Getline не считывает строку целиком
getline в string не хочет считывать полностью строку, а только до первого пробела. #include...

Getline считывает пустую строку
Почему тут не работает getline, а программа просто закрывается? Что я делаю не так? #include...

1
Модератор
Эксперт С++
9922 / 8443 / 5131
Регистрация: 18.12.2011
Сообщений: 22,608
02.11.2015, 14:24 2
C++
1
2
3
cin >> nStr; // после ввода nStr символ конца строки остался в потоке ввода
ArrayStr MyArray = ArrayStr(nStr); 
MyArray.InputArr(); // читается пустая строка
Подробнее см.
Распространенные ошибки
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2015, 14:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Почему stream.getline считывает до пробела?
Задание: удалить все адреса изображений в html-файле (в теге img значение атрибута src заменить на...

Не считывает одну строку из файла с getline()
string s; char l; ifstream file1; file1.open(&quot;in_1.dat&quot;, ios::in); cout &lt;&lt; &quot;ФАЙЛ...

Не перезаписывать переменную при проходе цикла (Построение графика)
Доброго времени суток дамы и господа. Мой вопрос заключается в том, что: Когда у нас есть цикл, то...

Неожиданное поведение программы: std::getline считывает строку только раз и на этом программа завершается (найти ошибку)
Строку считывает только раз и на этом программа завершается Code::blocks 17.12 #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.