[ spezia @ 15.07.2008. 11:33 ] @
Ne razumem kako ovo funkcionise.
Kada ukucam ceo primer.Izbaci mi "Unesite karakter".Ja unesem,a on izbaci "Uneli ste..."
I ispise "Unesi x", "Unesi Y"...Jednostavno ne radi Console.Read().
Ne zaustavlja se konzola da ucitam vrednost brojeva.
Ako stavim gornje redove ,za karakter pod komentar,Onda mi lepo izbaci
"unesi a:" ja unesem a on opet preskoci red Read() za unos b vrednsoti.A zbir mi racuna kao a+0.
A kada stavim zadnji red kao Console.Read() da se ne iskljucuje konzola odmah,nego da na natenane pogledam rezultat ,naravno i ovaj rec se preskace.
Tacnije u celom programu cita se samo prva nareba Console.Read() ostale se preskacu.kao da je limit jedan read() po programu.
Radim u Visual Studio 2005.
Jel ima neko logicno objasnjenje???
Code:

using System;
using System.Collections.Generic;
using System.Text;

namespace primer
{
    public class zbir
    {
        
        public int sum(int x,int y)
        {
            int r = x + y;
            return r;
        }
    }
    class Program
    {
        static void Main()
        {
            zbir myClass = new zbir();
            //Console.Write("Unesi karakter:");
            //char myChar =(char) Console.Read();
           // Console.Write("Uneli ste " + myChar +".Hvala");
            
            Console.Write("Unesi a:");
            int a=Console.Read();
            Console.Write("Unesi b:");
            int b =Console.Read();
            Console.WriteLine(" zbir je" + myClass.sum(a,b));
            Console.Read();

            
       
        }
    }
}

[ bunker @ 15.07.2008. 12:48 ] @
Pazi, Console.Read() ne vraca broj koji si ti uneo, vec vraca raspored otkucanog karaktera u ASCII tabeli. "A" = 65, "a" = 97, "3" = 51.

Nisam nikad koristio Console.Read(), ali sam ocekivao drugacije ponasanje. Mislio sam da on odreaguje posle pritiska bilo kog teksta, a ne tek posle Enter-a.
Ako na kraju svog koda postavis jos jedan Console.Read() moci ces da vidis rezultat, ali ne i da uneses "b". Ovo se desava zato sto sistem prepozna ukucavanje karaktera tek posle pritiska tastera Enter.
Taster Enter nosi dva karaktera. /r (Carriage return) i /n (New Line).
To znaci da je procitao broj koji si uneo (1. Console.Read()) , pa procita CR (2. Console.Read() - zato i preskoci unos broja "b"), pa procita NL (preskoci prikazivanje rezultata).
Ako npr, uneses dvocifren broj za a, ni cetvrti Console.Read() ti nece pomoci da tekst ostane na ekranu, jer dvocifren broj + Enter salje signal za 4 tastera.

Umesto Console.Read(), koristi Console.ReadLine() i parsiraj vraceni string.

S obzirom da nemas neku preteranu funkcionalnost u objektu tipa zbir, metod sum mozes da definises kao staticki, da ne bi instancirao objekat.
Code:

public class zbir
    {

        public static int sum(int x, int y)
        {
            int r = x + y;
            return r;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            //zbir myClass = new zbir();
            //Console.Write("Unesi karakter:");
            //char myChar =(char) Console.Read();
            // Console.Write("Uneli ste " + myChar +".Hvala");

            Console.Write("Unesi a:");
            int a = int.Parse(Console.ReadLine());
            Console.Write("Unesi b:");
            int b = int.Parse(Console.ReadLine());

            Console.WriteLine("");
            Console.WriteLine("zbir je " + zbir.sum(a, b));
            int c = Console.Read();
            int d = Console.Read();
        }
    }
[ spezia @ 15.07.2008. 13:42 ] @
Radi.Samo ne znam cemu sluze int c i int d??
Ja stavim na kraju Console.Read(); i radi.
Radim primere iz knjige pa se cudim.Sada su forsirati uvek tvoje resenje kod read().
Hvala
[ bunker @ 16.07.2008. 07:50 ] @
int c i ind d su neki moj eksperiment. Zaboravio sam da obrisem :)