Форум программистов, компьютерный форум CyberForum.ru

При вводи данных неправильно выводит на экран - C++

Восстановить пароль Регистрация
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
26.10.2011, 09:05     При вводи данных неправильно выводит на экран #1
вот код программы
Код
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
   int x;
   int y;
   cout<<"Введите два числа конец ввода символ |"<<endl;
   while (((x=getch())!='|')&&((y=getch())!='|'))
   {
      cout<<x<<y<<endl;
   }

getch();
return 0;
}
При вводи 1 и 2 на экран выводиться(ссылка на скрин)
http://s42.***********/i095/1110/58/ae02e193312d.jpg

как это можно устранить или может ошибка в коде саммом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 09:05     При вводи данных неправильно выводит на экран
Посмотрите здесь:

Разработать программу, которая выводит, например, на экран следующую таблицу из введенных данных C++
Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. C++
неправильно выводит логарифм C++
с++,циклическая очередь, сразу норм выводит, а потом на где-то логика нарушается и неправильно выводит C++
Неправильно выводит результат при нахождении расстояния между отрезками C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.10.2011, 09:07     При вводи данных неправильно выводит на экран #2
C++
1
2
    if (cin >> x >> y)
        cout << x << " " << y << endl;
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
26.10.2011, 09:12  [ТС]     При вводи данных неправильно выводит на экран #3
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
    if (cin >> x >> y)
        cout << x << " " << y << endl;
Что это мне нужно что бы программа заканчивалась символо '|' с помошью цикла while просто я по другому не могe тока с помощью getch();
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.10.2011, 11:06     При вводи данных неправильно выводит на экран #4
Цитата Сообщение от Sylar9
Что это мне нужно что бы программа заканчивалась символо '|'
это просто вводишь два числа и всё
-=ЮрА=-
Заблокирован
Автор FAQ
26.10.2011, 11:17     При вводи данных неправильно выводит на экран #5
Sylar9, замени getch на getchar а условием окончания ввода вбей '\n'
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
26.10.2011, 11:19     При вводи данных неправильно выводит на экран #6
Цитата Сообщение от -=ЮрА=-
замени getch на getchar
и что это даст ?
всё равно будет неправильно
-=ЮрА=-
Заблокирован
Автор FAQ
26.10.2011, 11:34     При вводи данных неправильно выводит на экран #7
Вот и весь алгоритм
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
#include <iostream>
#include <conio.h>
using namespace std;
 
//ГђГіГ±Г±ГЁГґГЁГЄГ*öèÿ
ostream& operator<<(ostream &stream,char* s){
    for(char* ps=s; *ps; ps++){
        if(*ps=='Вё')
            stream<<char(241);
        else if(*ps=='ВЁ')
            stream<<char(240);
        else if(*ps>=-64 && *ps<=-17)           
            stream<<char(*ps+64+128);
        else if(*ps<0)
            stream<<char(*ps+64+176);
        else
            stream<<*ps;
    }
    return stream;
}
 
int main()
{
   float x = 0;
   float y = 0;
   bool bX = true;
   char ch;
   cout<<"Ââåäèòå äâГ* Г·ГЁГ±Г«Г* ÷åðåç ïðîáåë ГЄГ®Г*ГҐГ¶ ââîäГ* Enter\n";
   while ((ch = getchar()) != '\n')
   {
      if(ch != ' ')
      {
          if(bX)
          {
              x *= 10;
              x += (ch - 48);
          }
          else
          {
              y *= 10;
              y += (ch - 48);
          }
      }
      else
          bX = false;
   }
   cout<<"x = "<<x<<"\n";
   cout<<"y = "<<y<<"\n";
   system("pause");
   return 0;
}
Миниатюры
При вводи данных неправильно выводит на экран  
-=ЮрА=-
Заблокирован
Автор FAQ
26.10.2011, 11:50     При вводи данных неправильно выводит на экран #8

Не по теме:

Цитата Сообщение от accept Посмотреть сообщение
и что это даст ?
всё равно будет неправильно
- Компилируйте код выше и смотрите что это далоДля начало научитесь вдумываться в мои слова а не спрожёгу писать - и помните для меня вы не аксепт и не авторитет, а один из форумчан ничем не хуже или лучше меня самого. Мой вам совет не стоить думать что тут все бездари а вы один такой тут умный!Впреть предлагаю сохранять паритет и лояльно к друг другу на форуме относиться, договорились???



Добавлено через 9 минут
Sylar9, для вас поясню код
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
(ch - 48);
- это означает код ASCII символа МИНУС код '0' == 48, предполагается что вы цифры вводите, будут буквы алгоритм отработает, только символ для него не символ а всего лишь код, например у 1-цы это 49 и
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
x += (ch - 48);
будет эквивалентно x += (49 - 48) будет как х + 1 а если ch == 'a' то по памяти код у 'a' это 97, поэтому x += (97 - 48) будет эквивалентно х +=49. Не вопрос я мог ввести защиту от неправильного ввода, введя доп условие if(48 <= ch && ch <= 57) но это изначально могло вас запутать поєтому привёл минимально необходимый код, надеюсь помог!
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.10.2011, 02:14     При вводи данных неправильно выводит на экран #9
Цитата Сообщение от -=ЮрА=-
- Компилируйте код выше и смотрите что это далоДля начало научитесь вдумываться в мои слова а не спрожёгу писать - и помните для меня вы не аксепт и не авторитет, а один из форумчан ничем не хуже или лучше меня самого. Мой вам совет не стоить думать что тут все бездари а вы один такой тут умный!Впреть предлагаю сохранять паритет и лояльно к друг другу на форуме относиться, договорились???
ты предложил в его коде заменить getch() на getchar()
у него неправильный код, потому что он пытается ввести символы в целочисленные переменные (якобы они преобразуются в числа)
и вот это ввод чисел, который вводит числа в целочисленные переменные
-=ЮрА=-
27.10.2011, 09:18
  #10

Не по теме:

Цитата Сообщение от accept Посмотреть сообщение
ты предложил в его коде заменить getch() на getchar()
- я предложил это умно сделать, и Sylar9, в личке напиал подробней что и как хочу сделать, и что у него при каждом введенном символе идёт простая переинициализация х кодом символа, а ты сразу писать, нет не правильно, мой код приведенный в топике рабочий, что ещё тебе от меня нужно?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 09:32     При вводи данных неправильно выводит на экран
Еще ссылки по теме:

При вводе слова выводит на экран описание C++
C++ Неправильно выводит ответ
C++ Неправильно выводит минимальный элемент

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.10.2011, 09:32     При вводи данных неправильно выводит на экран #11
Цитата Сообщение от -=ЮрА=-
- я предложил это умно сделать, и Sylar9, в личке напиал подробней что и как хочу сделать
так здесь-то не видно
Yandex
Объявления
27.10.2011, 09:32     При вводи данных неправильно выводит на экран
Ответ Создать тему
Опции темы

Текущее время: 21:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru