none
cin не ждет ввода RRS feed

  • Вопрос

  • Программа не дожидается ввода признака

    cout<<"Продолжить?(0-НЕТ; 1-ДА)  ";
    cin.clear();
    cin>>pr; 
    cout << "pr=" << pr << endl;
    if (pr == 0) break;

    Происходит завершение программы

    Продолжить?(0-НЕТ; 1-ДА)  pr=0

    В чем причина непослушания? Конвейер?

Все ответы

  • Программа не дожидается ввода признака

    cout<<"Продолжить?(0-НЕТ; 1-ДА)  ";
    cin.clear();
    cin>>pr; 
    cout << "pr=" << pr << endl;
    if (pr == 0) break;

    Происходит завершение программы

    Продолжить?(0-НЕТ; 1-ДА)  pr=0

    В чем причина непослушания? Конвейер?

    Точно не конвейер. :)

    Под отладчиком что происходит? Какой тип у pr? Консоль юникодная?


    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор
  • Завершение с кодом 0

    int pr;

    Консоль , наверное, не юникодная, тк команда setlocale(LC_ALL, "rus");  работает.

    В каком месте настроить юникод?

    До проблемной cin работает

    while(cin >>a[j] && a[j]!='s')
    {if(a[j]==0) {m0[k]=j;k++;}

  • Завершение с кодом 0

    int pr;

    Консоль , наверное, не юникодная, тк команда setlocale(LC_ALL, "rus");  работает.

    В каком месте настроить юникод?

    До проблемной cin работает

    while(cin >>a[j] && a[j]!='s')
    {if(a[j]==0) {m0[k]=j;k++;}

    А до завершения с кодом 0? Поставьте точку останова на команду ввода и после нее.

    В любом случае, я попробовал вот это, все работает как и ожидалось.

    #include <Windows.h>
    #include <stdio.h>
    #include <tchar.h>
    #include "stdafx.h"
    #include<iostream>
    #include<conio.h>
    #include <iostream>
    #include <io.h>
    #include <fcntl.h>

    int _tmain(int argc, _TCHAR* argv[])
    {
            _setmode(_fileno(stdout), _O_U16TEXT);
    _setmode(_fileno(stdin), _O_U16TEXT);

    int foo;

    std::wcin >> foo;

    std::wcout << foo;

    }



    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор