Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/48: Рейтинг темы: голосов - 48, средняя оценка - 4.92
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320

На консоль выводится не то, что вводилось

07.04.2011, 23:26. Показов 10000. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такая проблема ввожу число 2, но почему то выводит 50, ввожу 1 выводит 49. Не могу понять в чем проблема?

Явно не с кодом:

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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Lesson1
{
    
    class Program
    {
       
 
        static void Main(string[] args)
        {
            int c;
                       
 
            Console.Write("Введите число ");
            c = Console.Read();
 
            Console.WriteLine(c);
                       
            Console.ReadKey();
             
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.04.2011, 23:26
Ответы с готовыми решениями:

Почему выводится не результат, а выражение, которое вводилось?
Здравствуйте подскажите пожалуйста, ввожу следующее выражение (-1 + i)^5: затем жму Enter, после ввожу такую вот команду evalf(%), и...

Как проверить вводилось ли число в консоль
Как проверить, что в строку вопроса программы ввели число? А не какой-нибудь там char символ... Заранее Спасибо :p

BSTR - в консоль выводится не то, что положено
hr = pIMDUser->InitUserInfo(pIMDUserInfo); if (SUCCEEDED(hr)) { long user_count; hr = pIMDUser->UserCount(&user_count); ...

15
 Аватар для dzjundzja88
289 / 234 / 32
Регистрация: 09.02.2011
Сообщений: 435
07.04.2011, 23:28
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Lesson1
{
    
    class Program
    {
       
 
        static void Main(string[] args)
        {
            int c;
                       
 
            Console.Write("Введите число ");
            c = Convert.ToInt64(Console.ReadLine());
 
            Console.WriteLine(c);
                       
            Console.ReadKey();
             
        }
    }
}
Когда читаешь число, то нужно его приобразовывать в тот тип, который тебе нужно
1
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
07.04.2011, 23:31
dzjundzja88, Int64 - это разве не long?
если int, то скорее
C#
1
c = Convert.ToInt32(Console.ReadLine());
Цитата Сообщение от dimiby Посмотреть сообщение
Явно не с кодом:
как эта не с кодом? как раз таки с кодом)))
0
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320
07.04.2011, 23:43  [ТС]
а если хочу использовать Console.Read() или это не прокатит?

Добавлено через 1 минуту
про приведение типов я знаю, просто если использыушь console.read, написано, что уже само в тип int переводит, вот я и не переводил в тип int.
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
07.04.2011, 23:47
блин...можно сделать удаление гланд ректально, из серии
C#
1
c = int.Parse(Convert.ToChar(Console.Read()).ToString());
но зачем?
1
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320
08.04.2011, 00:00  [ТС]
сам метод console.read() к какому типу приводит?
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
08.04.2011, 00:03
к int32 (то бишь обычный int), ежели я ничего не путаю...
0
6 / 6 / 3
Регистрация: 22.06.2010
Сообщений: 320
08.04.2011, 00:10  [ТС]
а зачем тогда такая конструкция, если с сразу получит int?
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
08.04.2011, 00:17
ну как бы для того, чтобы, введя "2" не получить на выходе "49", ибо console.read(), насколько я понимаю, преобразует введенный символ в int путем получения кода этого символа...
0
 Аватар для Sergei
1513 / 780 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
08.04.2011, 00:32
метод
C#
1
Console.Read();
читет символ из входного потока и возраващает его ASCII код
поэтому если вы водите одну цифру например 2 то на выходе имеете не число 2 а код символа 2
а если вы вводите две цифры то для этого вам нужно использовать
C#
1
Console.ReadLine();
так как первый метод прочитает только первый символ
C#
1
2
3
4
5
6
7
8
9
10
 string s = Console.ReadLine();
            int n;
            if ( Int32.TryParse(s, out n))
            {
               // обрабатсываем число
            }
            else
            {
                //ошибка ввода
            }
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
08.04.2011, 01:39
Sergei, я вас дополню немного и уточню чтобы было проще понять начинающему.
Console.ReadLine() возвращает строку (string) посему из этой строки Вам надо достать чисто (к примеру int). для этого есть метод: int.Parse() - аргументом у него строка (string) и возвращает он int. тоесть если упростить, то чтобы считать введенную строку (если там циферки) нужно написать следующий код:
C#
1
2
Console.WriteLine("a = ");
int a = int.Parse(Console.ReadLine());
если же неизвестно что там у вас за строка будет, то используется метод int.TryParse(); он возвращает переменную типа bool: при удачнос считывании возвращает true, и при неудачном - false. при этом параметрами метода выступают сама строка и переменная, которой вы хотите присвоить значение строки. если произойдет неудачно считывание (к примеру если строка будет вот такая "3243ы", то переменной будет присвоено значение 0.
Цитата Сообщение от Sergei Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
9
10
string s = Console.ReadLine();
 int n;
 if ( Int32.TryParse(s, out n))
 {
 // обрабатсываем число
 }
 else
 {
 //ошибка ввода
 }
как писал Sergei
0
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 8
04.09.2013, 22:42
C#
1
Console.RealLine();
Такое вообще когда использовать можно и нужно? Или нежно только так как приведено выше?
0
мастер топоров
 Аватар для Koran
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
04.09.2013, 22:45
Demix-V, это больше как совет, можно использовать без TryParse, особенно если ожидается строка - например, Имя или фамилия
0
 Аватар для Закревский
184 / 184 / 29
Регистрация: 14.04.2013
Сообщений: 499
04.09.2013, 22:46
Demix-V, Console.ReadLine() используется для получения строки введенной в консоль(типа string).По-моему наверху это четко описано.
0
0 / 0 / 0
Регистрация: 10.04.2013
Сообщений: 8
04.09.2013, 22:51
Цитата Сообщение от Закревский Посмотреть сообщение
Demix-V, Console.ReadLine() используется для получения строки введенной в консоль(типа string).По-моему наверху это четко описано.
Я не заметил что здесь 2-я страница есть и не прочитал её.
0
1 / 1 / 0
Регистрация: 08.08.2012
Сообщений: 35
07.06.2014, 22:30
Вот так правильно
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
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Lesson1
{
 
    class Program
    {
 
 
        static void Main(string[] args)
        {
            int c;
 
 
            Console.Write("Введите число ");
            c = Convert.ToInt32( Console.ReadLine());
 
            Console.WriteLine(c);
 
            Console.ReadKey();
 
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2014, 22:30
Помогаю со студенческими работами здесь

Считывание из файла: в консоль выводится не то, что ожидалось
При считывании из файла все происходит нормально, но если длина a или b >=10, то вместо числа пишет непонятное число. //объявление...

Как проверить вводилось ли число (типа double или float) в консоль
Как проверить вводилось ли число (типа double или float) в консоль?

сделать что бы число записей вводилось пользователем
Код: #include <iostream> #include <conio.h> #include <windows.h> using namespace std; int main() { SetConsoleCP(1251); ...

Почему выводит не понятные символы, а не то что вводилось пользователем?
#include "stdafx.h" #include <iostream> #include <sstream> #include <cstring> #include <conio.h> using namespace std; ...

Не выводится кириллица в консоль
Всем привет. Работаю в Visual 2010. Проблема в том, что когда пытаюсь вывести русские буквы в консоль получается дребедень полная. Ниже...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru