Jak zczytać z konsoli inta, doubla, chara?

0

Witam, zaczynam zabawę z c# i na samym początku nastał koniec, tworzę prosty program i coś mi wywala nie wiem dlaczego. Dodam że wcześniej pisałem w c.

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace kalkulator
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 0, b = 0; // jaka funkcja wczytania umożliwi mi wczytanie doubla, ponieważ na takich wartościach powinien działać ten program a nie wiem za bardzo jak je wprowadzać
            string operacja;
 
            Console.WriteLine("Witaj w kalkulatorze.\nPodaj dwie liczby:");
            a = Console.Read();// w tym momencie po wprowadzeniu jednej liczby program od razu przechodzi do ostatniego wiersza gdzie podaję dowolny klawisz aby zamknąć okno
            b = Console.Read();
 
            Console.WriteLine("Jaką operację chcesz wykonac: \n'+' dodawanie \n'-' odejmowanie \n'*' mnozenie \n'/' dzielenie \n'^' potegowanie(a^b) \n'!' silnia");
            operacja = Console.ReadLine(); // jak wprowadzić sam znak (char)? jak używam funkcji Read to wyskakuje błąd że to wczytuje int, a jak ReadLine to wyskakuje że to wczytuje tylko stringa
 
            switch (operacja)
            {
                case "+":
                    Console.WriteLine(a + b);
                    break;
                case "-":
                    Console.WriteLine(a - b);
                    break;
                case "*":
                    Console.WriteLine(a * b);
                    break;
                case "/":
                    Console.WriteLine(a / b);
                    break;
 
 
                default:
                    Console.WriteLine("cos poszlo nie tak");
                    break;
            }
 
            Console.WriteLine("{0} {1}",a, b);
            Console.ReadKey();
        }
    }
}

Pytania umieściłem w kodzie, bardzo proszę o pomoc dla żółtodzioba :D

0

double.TryParse w połączeniu z Console.ReadLine.

1

Console.Read() wczytuje kolejne znaki z konsoli i zwraca kod ASCII, Console.ReadLine() wczytuje wszystkie znaki do końca linii. Więc jak w konsoli wpisujesz np. 1 i wciśniesz enter to:

int a = 49
int b = 13
string operacja = pusty_string (jak by było tam int/Read() jak w przypadku a i b to wartość wynosiła by 10)

Jak by przełożyć kody ASCII na znaki to wyjdzie 1CRLF gdzie CRLF to znak końca linii w Windowsie.
Więc na starcie podajesz wszystkie potrzebne dane.

Używaj zawsze Console.ReadLine() i parsuj to co wczytałeś na porządny typ:
https://msdn.microsoft.com/en-us/library/bb397679.aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1