Member 13646637 Ответов: 1

Мой код пропускает строки всякий раз, когда я набираю пробел в cin в C++


Код, кажется, работает нормально, когда я набираю одно слово ввода или только цифры, но как только я набираю пробел, он просто пропускает строки в коде. Это только первое домашнее задание, которое у нас есть, и поэтому я знаю, что оно не должно быть очень сложным. Может быть, это просто мое программное обеспечение? Кто-нибудь хочет мне помочь?

// This program prompts the user a few general questions about themselves, the date, which IDE they are using, and which machine they have downloaded the IDE on to.
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string userName, currentDate, softwareName, machineName;

    //Ask the user his name.
    cout << "What is your name? ";
    cin >> userName;

    //Ask the user the date.
    cout << "What is the date? ";
    cin >> currentDate;

    //Asks the user which software he downloaded.
    cout << "What is the name the IDE software you downloaded? ";
    cin >> softwareName;

    //Asks the user which machine he downloaded his IDE on.
    cout << "Which machine did you download the IDE on? (ie. home computer, laptop, etc.) ";
    cin >> machineName;

    //Prints out the users inputs going downwards.
    cout << "" <<  userName << endl;
    cout << "" <<  currentDate << endl;
    cout << "" <<  softwareName << endl;
    cout << "" <<  machineName << endl;
    return 0;
}


Что я уже пробовал:

Я попробовал переписать код, узнал, что мне нужно добавить строку, и просто попытался отформатировать все немного аккуратнее, но, похоже, получил тот же результат.

1 Ответов

Рейтинг:
0

OriginalGriff

cin всегда останавливается на разделителе, который включает в себя пространство.
Чтобы прочитать всю строку до ввода, используйте std::getline - cppreference.com[^] вместо.


CPallini

5.