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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,925
Записей в блоге: 1
#1

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

26.10.2011, 09:05. Просмотров 797. Ответов 10
Метки нет (Все метки)

вот код программы
Код
#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++
Добрый вечер! Подскажите, пожалуйста, почему неправильно считает в строке 57 и выводит на экран страшное число? Может я что-то не дописала?...

Неправильно выводит результат при нахождении расстояния между отрезками - C++
Пытался сам решить ниже поставленную задачу с нахождением расстояния между ОТРЕЗКАМИ. Однако где-то ошибка, выводит белеберду ...

При вводе слова выводит на экран описание - C++
Составить программу. При вводе цвета (red, blue, green) на экран выводилось его описание (оттенок). Написал код, но он не работает так...

Разработать программу, которая выводит, например, на экран следующую таблицу из введенных данных - C++
Примерное задание Разработать программу, которая выводит, например, на экран следующую таблицу из введенных данных:

Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая, что выводится: буква или цифра. - C++
Помогите,плиз... Написать программу-фильтр, которая при нажатии любых клавиш выводит на экран только буквы и цифры, при этом указывая,...

Неправильно выводит ответ - C++
#include &quot;iostream&quot; using namespace std; int main () { int a, i, l, n,d=0; cin&gt;&gt;n; for (i=0; i&lt;n; i++) {for(l=0; l&lt;n; l++) ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4821 / 3241 / 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,925
Записей в блоге: 1
26.10.2011, 09:12  [ТС] #3
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
    if (cin >> x >> y)
        cout << x << " " << y << endl;
Что это мне нужно что бы программа заканчивалась символо '|' с помошью цикла while просто я по другому не могe тока с помощью getch();
accept
4821 / 3241 / 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
4821 / 3241 / 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
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.10.2011, 02:14 #9
Цитата Сообщение от -=ЮрА=-
- Компилируйте код выше и смотрите что это далоДля начало научитесь вдумываться в мои слова а не спрожёгу писать - и помните для меня вы не аксепт и не авторитет, а один из форумчан ничем не хуже или лучше меня самого. Мой вам совет не стоить думать что тут все бездари а вы один такой тут умный!Впреть предлагаю сохранять паритет и лояльно к друг другу на форуме относиться, договорились???
ты предложил в его коде заменить getch() на getchar()
у него неправильный код, потому что он пытается ввести символы в целочисленные переменные (якобы они преобразуются в числа)
и вот это ввод чисел, который вводит числа в целочисленные переменные
-=ЮрА=-
27.10.2011, 09:18
  #10

Не по теме:

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

accept
4821 / 3241 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
27.10.2011, 09:32 #11
Цитата Сообщение от -=ЮрА=-
- я предложил это умно сделать, и Sylar9, в личке напиал подробней что и как хочу сделать
так здесь-то не видно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2011, 09:32
Привет! Вот еще темы с ответами:

Неправильно выводит двумерный массив - C++
#include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; int main()...

Неправильно выводит минимальный элемент - C++
Дана непустая последовательность различных натуральных чисел, за которой следует ноль. Определить порядковый номер наименьшего из них. ...

Написать программу, которая выводит на экран пятиконечную звезду с изменяемым при старте программы цветом - C++
Написать программу, которая выводит на экран пятиконечную звезду с изменяемым при старте программы цветом.

Алгоритм Дейкстры неправильно выводит путь - C++
вот прога, но она неправильно выводит путь((( #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;conio.h&gt; #include&lt;locale.h&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.10.2011, 09:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru