c++ завершить цикл клавишей <Enter>

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Дирижабль, 12 Nov 2013.

  1. Дирижабль

    Дирижабль [ ✯✯✯ Ядерный Суицид ✯✯✯ ]

    Joined:
    6 Jan 2010
    Messages:
    369
    Likes Received:
    346
    Reputations:
    292
    нужно завершать вложенный цикл клавишей <enter>, весь день просидел так и не осилил, при объекктов getch(), cin.get() завершается при каждом символе.
    #include <iostream>
    #include <conio.h>
    int main ()
    {
    using namespace std;
    int numbers = 0;
    int b = 0;
    int a = 0;
    int d = 0;
    int ch = 0;
    cout << "Enter the number of patrons: ";
    cin >> numbers;
    struct patrons
    {
    char name[20];
    long double donation;
    };
    patrons * pp = new patrons[numbers];
    for (; a != numbers; a++)
    {
    while(cin.get(pp[a].name[d]))
    {
    ++d;
    if (/*??? != '\n',13, 0xd итд. непомогает*/)
    break;
    }
    d = 0;


    }
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Если завершать вложенный while, то непонятно, почему условие != '\n'.
    А так всё работает.
    Code:
    if (pp[a].name[d - 1] == '\n')
      break;
    
    Если, конечно, задумана именно такая логика.
     
    _________________________
    1 person likes this.
  3. Дирижабль

    Дирижабль [ ✯✯✯ Ядерный Суицид ✯✯✯ ]

    Joined:
    6 Jan 2010
    Messages:
    369
    Likes Received:
    346
    Reputations:
    292
    да такая, спс, работает