Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2015, 16:04   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию С++, потоки iostream, ошибка записи в строку

Ребят, еще раз я, на этот раз хотел спросить про потоки, почему-то цикл игнорирует первое вхождение строки и начинает ввод со второй, т.е. просто нет прерывания для ввода строки.

Облазил весь интернет, ничего толкового и понятного не нашел.

Код:
#include <QCoreApplication>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    int count=0;
    float summ=0;
    char stroka[50];


    cout<<"Input count strok: ";
    cin>>count;



    for (int i=0;i<count;i++)
    {


        cout<<"Input str No: "<<i+1<<endl;
        cin.getline(stroka,50);


    }


    cout<<"DONE!";


    return a.exec();
}
Изображения
Тип файла: jpg err.jpg (35.8 Кб, 34 просмотров)
from dark to light)

Последний раз редактировалось Алексей_2012; 10.06.2015 в 16:06.
Алексей_2012 вне форума Ответить с цитированием
Старый 10.06.2015, 16:14   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

На первой итерации цикла возвращается ошибка
отслеживал так:
cerr<<"err";

после cin.getline.

на последующих итерациях все отлично работает.
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 10.06.2015, 16:30   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Какая ошибка? Скорее всего у вас остался символ первода строки после ввода кол-ва, попробуйте вставить вызов ignore
p51x вне форума Ответить с цитированием
Старый 10.06.2015, 16:34   #4
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Спасибо, оказалось все просто.

Код:
#include <QCoreApplication>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    int count=0;
    float summ=0;
    char stroka[50];


    cout<<"Input count strok: ";
    cin>>count;
    cin.ignore();


    for (int i=0;i<count;i++)
    {



        cout<<"Input str No: "<<i+1<<endl;
        cin.getline(stroka,50);



    }


    cout<<"DONE!";


    return a.exec();
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки в windows forms. Непонятная ошибка hunter03 Windows Forms 6 27.08.2013 15:12
Файлы и потоки.Ошибка akademochka Помощь студентам 6 23.03.2012 17:24
Visual Studio не компилируется программа. Ошибка в iostream.h (no such file or directory). В чем проблема? Mubat Visual C++ 2 19.10.2011 20:41
ошибка при компиляции C++(iostream.h) DoubleTrouble Помощь студентам 5 16.10.2011 15:51