diff --git a/FP2021/Cin/Cin.csproj b/FP2021/Cin/Cin.csproj
index d9823e9..4787d05 100644
--- a/FP2021/Cin/Cin.csproj
+++ b/FP2021/Cin/Cin.csproj
@@ -38,7 +38,7 @@
-
+
diff --git a/FP2021/Cin/Cin.cs b/FP2021/Cin/ConsoleIn.cs
similarity index 53%
rename from FP2021/Cin/Cin.cs
rename to FP2021/Cin/ConsoleIn.cs
index fc8d53f..3bcfc84 100644
--- a/FP2021/Cin/Cin.cs
+++ b/FP2021/Cin/ConsoleIn.cs
@@ -54,26 +54,26 @@ public static string NextToken()
///
/// Citeste urmatorul int dat ca si input in consola.
///
- /// valoarea int data.
+ /// valoarea int data sau 0 daca este intalnita o exceptie.
/// daca valoarea data nu este formata doar din cifre 0-9.
/// daca valoarea data este mai mare de .
public static int NextInt()
{
+ string token = NextToken();
int value;
try
{
- value = int.Parse(NextToken());
+ value = int.Parse(token);
}
catch (FormatException e)
{
- Console.WriteLine("Valoarea data nu poate fi transformata in int!");
- throw;
+ throw new FormatException($"Valoarea {token} nu poate fi transformata in int!", e);
}
catch (OverflowException e)
{
- Console.WriteLine($"Valoarea data este mai mare decat {int.MaxValue}!");
- throw;
+ throw new OverflowException(
+ $"Valoarea {token} este mai mare decat {int.MaxValue} sau mai mica decat {int.MinValue}!", e);
}
return value;
@@ -82,29 +82,73 @@ public static int NextInt()
///
/// Citeste urmatorul double dat ca si input in consola.
///
- /// valoarea double data.
+ /// valoarea double data sau 0 daca este intalnita o exceptie.
/// daca valoarea data nu este alcatuita doar din cifre 0-9 si caracterele . si ,
/// daca valoarea data este mai mare de
public static double NextDouble()
{
+ string token = NextToken();
double value;
try
{
- value = double.Parse(NextToken().Replace(',', '.'));
+ value = double.Parse(token.Replace(',', '.'));
}
catch (FormatException e)
{
- Console.WriteLine("Valoarea data nu poate fi transformata in double!");
- throw;
+ throw new FormatException($"Valoarea {token} nu poate fi transformata in double!", e);
}
catch (OverflowException e)
{
- Console.WriteLine($"Valoarea data este mai mare decat {double.MaxValue}!");
- throw;
+ throw new OverflowException(
+ $"Valoarea {token} este mai mare decat {double.MaxValue} sau mai mica decat {double.MinValue}!", e);
}
return value;
}
+
+ ///
+ /// Citeste urmatorul long dat ca si input in consola.
+ ///
+ /// valoarea long data sau 0 daca este intalnita o exceptie.
+ /// daca valoarea data nu este alcatuita doar din cifre 0-9
+ /// daca valoarea data este mai mare decat sau mai mica decat .
+ public static long NextLong()
+ {
+ string token = NextToken();
+ long value;
+
+ try
+ {
+ value = long.Parse(token);
+ }
+ catch (FormatException e)
+ {
+ throw new FormatException($"Valoarea {token} nu poate fi transformata in long!", e);
+ }
+ catch (OverflowException e)
+ {
+ throw new OverflowException(
+ $"Valoarea {token} este mai mare decat {long.MaxValue} sau mai mica decat {long.MinValue}!", e);
+ }
+
+ return value;
+ }
+
+ ///
+ /// Citeste primele n cuvinte date in consola.
+ ///
+ /// numarul de cuvinte care va fi citit.
+ /// string-ul format prin concatenarea tuturor cuvintelor citite.
+ public static string FirstWords(int count)
+ {
+ StringBuilder sb = new StringBuilder();
+
+ for (int i = 1; i <= count; ++i)
+ {
+ sb.Append($"{NextToken()} ");
+ }
+ return sb.ToString();
+ }
}
-}
\ No newline at end of file
+}