Podstawowe dane wejściowe i wyjściowe języka C #

W tym samouczku nauczymy się, jak pobierać dane wejściowe od użytkownika i wyświetlać dane wyjściowe w języku C # przy użyciu różnych metod

Wyjście C #

Aby wypisać coś w C #, możemy użyć

 System.Console.WriteLine () LUB System.Console.Write ()

Tutaj Systemjest przestrzeń nazw, Consoleto klasa wewnątrz przestrzeni nazw Systemi WriteLinei Writesą metody klasy Console.

Spójrzmy na prosty przykład, który wypisuje łańcuch na wyjście screen.

Przykład 1: Drukowanie łańcucha za pomocą WriteLine ()

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( Console.WriteLine("C# is cool"); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 C # jest fajny

Różnica między metodą WriteLine () i Write ()

Główna różnica między WriteLine()i Write()polega na tym, że Write()metoda drukuje tylko dostarczony do niej ciąg, podczas gdy WriteLine()metoda drukuje ciąg i przenosi również na początek następnego wiersza.

Spójrzmy na poniższy przykład, aby zrozumieć różnicę między tymi metodami.

Przykład 2: Jak używać metody WriteLine () i Write ()?

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( Console.WriteLine("Prints on "); Console.WriteLine("New line"); Console.Write("Prints on "); Console.Write("Same line"); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 Drukuje w nowej linii Drukuje w tej samej linii

Drukowanie zmiennych i literałów za pomocą WriteLine () i Write ()

Metody WriteLine()i Write()można używać do drukowania zmiennych i literałów. Oto przykład.

Przykład 3: Drukowanie zmiennych i literałów

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( int value = 10; // Variable Console.WriteLine(value); // Literal Console.WriteLine(50.05); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 10 50.05

Łączenie (konkatenowanie) dwóch łańcuchów przy użyciu operatora + i drukowanie ich

Ciągi można łączyć / konkatenować za pomocą +operatora podczas drukowania.

Przykład 4: Drukowanie połączonego łańcucha przy użyciu operatora +

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( int val = 55; Console.WriteLine("Hello " + "World"); Console.WriteLine("Value = " + val); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 Hello World Value = 55

Drukowanie połączonego ciągu przy użyciu sformatowanego ciągu (lepsza alternatywa)

Lepszą alternatywą dla drukowania połączonego ciągu jest użycie sformatowanego ciągu. Sformatowany ciąg znaków umożliwia programiście użycie symboli zastępczych dla zmiennych. Na przykład,

Następujący wiersz,

 Console.WriteLine ("Wartość =" + val);

można zastąpić,

 Console.WriteLine ("Wartość = (0)", wartość);

(0)jest symbolem zastępczym zmiennej val, która zostanie zastąpiona wartością val. Ponieważ używana jest tylko jedna zmienna, jest więc tylko jeden symbol zastępczy.

W sformatowanym ciągu można użyć wielu zmiennych. Zobaczymy to w poniższym przykładzie.

Przykład 5: Drukowanie połączonego ciągu znaków przy użyciu formatowania ciągów

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( int firstNumber = 5, secondNumber = 10, result; result = firstNumber + secondNumber; Console.WriteLine("(0) + (1) = (2)", firstNumber, secondNumber, result); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 5 + 10 = 15

Tutaj (0)jest zastępowany przez firstNumber, (1)jest zastępowany przez secondNumber i (2)jest zastępowany przez wynik. Takie podejście do drukowania wyników jest bardziej czytelne i mniej podatne na błędy niż użycie +operatora.

Aby dowiedzieć się więcej o formatowaniu ciągów, odwiedź C # formatowanie ciągów.

Wejście C #

W języku C # najprostszą metodą uzyskiwania danych wejściowych od użytkownika jest użycie ReadLine()metody Consoleklasy. Jednak Read()i ReadKey()są również dostępne do uzyskiwania danych wejściowych od użytkownika. Są również ujęte w Consoleklasie.

Przykład 6: Uzyskaj ciąg znaków wejściowych od użytkownika

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( string testString; Console.Write("Enter a string - "); testString = Console.ReadLine(); Console.WriteLine("You entered '(0)'", testString); ) ) ) 

Kiedy uruchomimy program, wynik będzie:

 Wpisz ciąg - Hello World Wprowadziłeś „Hello World”

Różnica między metodami ReadLine (), Read () i ReadKey ():

Różnica między ReadLine(), Read()i ReadKey()sposób jest następujący:

  • ReadLine(): ReadLine()Metoda odczytuje następny wiersz wejścia ze standardowego strumienia wejściowego. Zwraca ten sam ciąg.
  • Read(): Read()Metoda odczytuje następny znak ze standardowego strumienia wejściowego. Zwraca wartość ascii znaku.
  • ReadKey(): ReadKey()Metoda uzyskuje następny klawisz naciśnięty przez użytkownika. Ta metoda jest zwykle używana do przytrzymywania ekranu, dopóki użytkownik nie naciśnie klawisza.

Jeśli chcesz dowiedzieć się więcej o tych metodach, oto interesująca dyskusja na temat StackOverflow na temat: Różnica między Console.Read () i Console.ReadLine () ?.

Przykład 7: Różnica między metodą Read () i ReadKey ()

 using System; namespace Sample ( class Test ( public static void Main(string() args) ( int userInput; Console.WriteLine("Press any key to continue… "); Console.ReadKey(); Console.WriteLine(); Console.Write("Input using Read() - "); userInput = Console.Read(); Console.WriteLine("Ascii Value = (0)",userInput); ) ) )

Kiedy uruchomimy program, wynik będzie

 Naciśnij dowolny klawisz, aby kontynuować… x Wejście za pomocą Read () - Uczenie C # Ascii Wartość = 76

Z tego przykładu musi jasno wynikać, jak ReadKey()i Read()metoda działa. Podczas używania ReadKey(), zaraz po naciśnięciu klawisza jest on wyświetlany na ekranie.

Kiedy Read()jest używane, zajmuje całą linię, ale zwraca tylko wartość ASCII pierwszego znaku. W związku 76z tym Ldrukowana jest (wartość ASCII ).

Odczytywanie wartości liczbowych (typy całkowite i zmiennoprzecinkowe)

Odczytywanie znaku lub ciągu jest bardzo proste w C #. Wszystko, co musisz zrobić, to wywołać odpowiednie metody zgodnie z wymaganiami.

Jednak odczytywanie wartości liczbowych może być nieco trudne w C #. Nadal będziemy używać tej samej ReadLine()metody, której używaliśmy do uzyskiwania wartości ciągów. Ale ponieważ ReadLine()metoda przyjmuje dane wejściowe jako łańcuch, należy je przekonwertować na typ całkowity lub zmiennoprzecinkowy.

Jednym prostym podejściem do konwersji naszych danych wejściowych jest użycie metod Convertklasy.

Przykład 8: Odczytywanie wartości liczbowych od użytkownika przy użyciu klasy Convert

 using System; namespace UserInput ( class MyClass ( public static void Main(string() args) ( string userInput; int intVal; double doubleVal; Console.Write("Enter integer value: "); userInput = Console.ReadLine(); /* Converts to integer type */ intVal = Convert.ToInt32(userInput); Console.WriteLine("You entered (0)",intVal); Console.Write("Enter double value: "); userInput = Console.ReadLine(); /* Converts to double type */ doubleVal = Convert.ToDouble(userInput); Console.WriteLine("You entered (0)",doubleVal); ) ) ) 

Kiedy uruchomimy program, wynik będzie

 Wpisz wartość całkowitą: 101 Wprowadziłeś 101 Wpisz podwójną wartość: 59.412 Wprowadziłeś 59.412

Metoda ToInt32()i ToDouble()klasy Convert konwertuje ciąg wejściowy odpowiednio na typ całkowity i podwójny. Podobnie możemy przekonwertować dane wejściowe na inne typy. Oto pełna lista dostępnych metod klasy Convert.

Istnieją inne sposoby uzyskiwania danych numerycznych od użytkownika. Aby dowiedzieć się więcej, odwiedź Odczytywanie liczby całkowitej z danych wejściowych użytkownika.

Interesujące artykuły...