R.T. Shadow Opublikowano 3 Kwietnia 2006 Zgłoś Opublikowano 3 Kwietnia 2006 Chciałbym wczytać do programu liczbę typu int przez konsolę. Chodzi mi o odpowiednik poniższego kodu z C++: int x;std::cin>>x; Próbowałem w ten sposób: int x=System.Console.Read(); ale mimo iż program się kompiluje, to nie działa poprawnie. Używam Visual Studio 2005 EE. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 6 Kwietnia 2006 Zgłoś Opublikowano 6 Kwietnia 2006 Błąd jest dlatego, że nie rzutujesz stringa do int. Rezultatem System.Console.Read() jest string. Najprościej można to zrobić tak: int i = Convert.ToInt32(Console.ReadLine());Ale ten sposób jest beznadziejny. int i = 0; int.TryParse(Console.ReadLine(),out i); To jest znacznie lepszy sposób. Bo w metodzie TryParse jest już zawarte kilka innych poleceń m.in. sprawdzanie wyjątków we wprowadzonym tekście. Zmienna int i zostaje ustalona defaultowo na 0. Jeśli instrukcji TryParse nie uda sie przerobić podanego tekstu na liczbę całkowitą to zmienna int i nie zmienia się zostaje tam 0. Jeśli TryParse przerobi podany tekst na liczbę całkowitą to właśnie ta liczba zostaje wpsiana do zmiennej int i. Najprostrza i najskteczniejsza metoda na pobieranie liczb, i ważne jest to że nie zostaje wyrzucony wyjątek. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
yasin Opublikowano 6 Kwietnia 2006 Zgłoś Opublikowano 6 Kwietnia 2006 Ale tym sposobem tracisz wiedze, czy wprowadzono faktycznie liczbe, czy jakis tekst. Imho lepiej lapac wyjatek i wtedy mozna dac urzytkownikowi informacje, ze nie wprowadzil liczby tylko tekst. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 6 Kwietnia 2006 Zgłoś Opublikowano 6 Kwietnia 2006 Sposobów jest wiele, wszytko zalezy co komu potrzeba. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...