4 Console Input Output 120712073619 Phpapp01
4 Console Input Output 120712073619 Phpapp01
3
The Console Class
Provides methods for console input and output
Input
Read(…) – reads a single character
ReadKey(…) – reads a combination of keys
ReadLine(…) – reads a single line of characters
Output
Write(…) – prints the specified
argument on the console
WriteLine(…) – prints specified data to the
console and moves to the next line
4
Console.Write(…)
Printing an integer variable
int a = 15;
...
Console.Write(a); // 15
7
Formatting Strings
{index[,alignment][:formatString]}
index
float pi = 3.14159206;
Console.WriteLine("{0:F2}", pi); // 3,14
Console.WriteLine("Bye – Bye!");
}
10
Printing a Menu – Example
double colaPrice = 1.20;
string cola = "Coca Cola";
double fantaPrice = 1.20;
string fanta = "Fanta Dizzy";
double zagorkaPrice = 1.50;
string zagorka = "Zagorka";
Console.WriteLine("Menu:");
Console.WriteLine("1. {0} – {1}",
cola, colaPrice);
Console.WriteLine("2. {0} – {1}",
fanta, fantaPrice);
Console.WriteLine("3. {0} – {1}",
zagorka, zagorkaPrice);
Console.WriteLine("Have a nice day!");
11
Reading from the Console
Reading Strings and Numeral Types
Reading from the Console
We use the console to read information from
the command line
We can read:
Characters
Strings
Numeral types (after conversion)
To read from the console we use the methods
Console.Read() and Console.ReadLine()
13
Console.Read()
Gets a single character from the console (after
[Enter] is pressed)
Returns a result of type int
Returns -1 if there aren’t more symbols
To get the actually read character we
need to cast it to char
int i = Console.Read();
char ch = (char) i; // Cast the int to char
14
Console.ReadKey()
Waits until a combination of keys is pressed
Reads a single character from console or a
combination of keys
Returns a result of type ConsoleKeyInfo
KeyChar – holds the entered character
Modifiers – holds the state of [Ctrl], [Alt], …
16
Reading Numeral Types
Numeral types can not be read directly from the
console
To read a numeral type do the following:
1. Read a string value
2. Convert (parse) it to the required numeral type
int.Parse(string)
Parses (converts) a string to int
float f = float.Parse(Console.ReadLine());
Console.WriteLine("{0} * {1} / {2} = {3}",
a, b, f, a*b/f);
}
19
Converting Strings
to Numbers (2)
Converting can also be done using the methods of
the Convert class
Convert.ToInt32(string) – string int
Convert.ToSingle(string)– string float
Convert.ToInt64(string)– string long
It uses the parse methods of the numeral types
string s = "123";
int i = Convert.ToInt32(s); // i = 123
long l = Convert.ToInt64(s); // l = 123L
string invalid = "xxx1845";
int value = Convert.ToInt32(invalid); // FormatException
20
Error Handling when Parsing
Sometimes we want to handle the errors when
parsing a number
Two options: use try-catch block or TryParse()
Parsing with TryParse():
string str = Console.ReadLine();
int number;
if (int.TryParse(str, out number))
{
Console.WriteLine("Valid number: {0}", number);
}
else
{
Console.WriteLine("Invalid number: {0}", str);
}
21
Regional Settings
Printing and Reading Special Characters
Regional Settings and the Number Formatting
How to Print Special
Characters on the Console?
Printing special characters on the console needs
two steps:
Change the console properties
to enable Unicode-friendly font
Enable Unicode for the Console
by adjusting its output encoding
Prefer UTF8 (Unicode)
using System.Text;
…
Console.OutputEncoding = Encoding.UTF8;
Console.WriteLine("Това е кирилица: ☺");
23
Decimal Separator
The currency format and number formats are
different in different countries
E.g. the decimal separator could be "." or ","
To ensure the decimal separator is "." use the
following code:
using System.Threading;
using System.Globalization;
…
Thread.CurrentThread.CurrentCulture =
CultureInfo.InvariantCulture;
Console.WriteLine(3.54); // 3.54
decimal value = decimal.Parse("1.33");
24
Printing a Letter – Example
Console.WriteLine(" Yours,");
Console.WriteLine(" {0}", company);
25
Calculating Area – Example
26
Exercises
1. Write a program that reads 3 integer numbers from
the console and prints their sum.
2. Write a program that reads the radius r of a circle
and prints its perimeter and area.
3. A company has name, address, phone number, fax
number, web site and manager. The manager has
first name, last name, age and a phone number.
Write a program that reads the information about a
company and its manager and prints them on the
console.
27
Exercises (2)
4. Write a program that reads two positive integer
numbers and prints how many numbers p exist
between them such that the reminder of the division
by 5 is 0 (inclusive). Example: p(17,25) = 2.
5. Write a program that gets two numbers from the
console and prints the greater of them. Don’t use if
statements.
6. Write a program that reads the coefficients a, b and c
of a quadratic equation ax2+bx+c=0 and solves it
(prints its real roots).
28
Exercises (3)
7. Write a program that gets a number n and after that
gets more n numbers and calculates and prints their
sum.
8. Write a program that reads an integer number n
from the console and prints all the numbers in the
interval [1..n], each on a single line.
9. Write a program to print the first 100 members of
the sequence of Fibonacci: 0, 1, 1, 2, 3, 5, 8, 13, 21,
34, 55, 89, 144, 233, 377, …
10. Write a program to calculate the sum (with accuracy
of 0.001): 1 + 1/2 - 1/3 + 1/4 - 1/5 + ...
29
Exercises (4)
11. * Implement the "Falling Rocks" game in the text
console. A small dwarf stays at the bottom of the
screen and can move left and right (by the arrows
keys). A number of rocks of different sizes and forms
constantly fall down and you need to avoid a crash.
^ @ Rocks are the symbols ^,
* * @, *, &, +, %, $, #, !, ., ;,
& + % $
+ . - distributed with
t appropriate density. The
+++ # !
+ ; * dwarf is (O). Ensure a
. * ++ constant game speed by
. * --
; . (O) @ Thread.Sleep(150).
Implement collision detection and scoring system.
30