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

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

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

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

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

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

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

Разработать программу, которая выводит, например, на экран следующую таблицу из введенных данных - 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++) ...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4820 / 3240 / 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,913
Записей в блоге: 1
26.10.2011, 09:12  [ТС]     При вводи данных неправильно выводит на экран #3
Цитата Сообщение от accept Посмотреть сообщение
C++
1
2
    if (cin >> x >> y)
        cout << x << " " << y << endl;
Что это мне нужно что бы программа заканчивалась символо '|' с помошью цикла while просто я по другому не могe тока с помощью getch();
accept
4820 / 3240 / 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
4820 / 3240 / 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
4820 / 3240 / 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++
#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++
вот прога, но она неправильно выводит путь((( #include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;conio.h&gt; #include&lt;locale.h&gt; ...

Программа в VS2008 неправильно выводит числа - C++
Подскажите пожалуйста, почему не правильно работает программа? В VS2015 программа работает как надо, но стоит ее запустить в VS2008, и в...


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

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

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