Csharp/C Sharp/Development Class/Console Input Output

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A simple command line program that reads from the console using Console.Read() and Console.ReadLine()

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

/*

   read.cs. A simple command line program that reads from
   the console using Console.Read() and Console.ReadLine().
   Compile this program using the following line:
       C:>csc read.cs
*/

using System; public class ReadCmdLine {

   static void Main()
   {
       Console.WriteLine ("First, using the Read() function " +
                          "without clearing the buffer");
       int arg;
       Console.Write("Type one or more characters: ");
       while ((arg = Console.Read()) > 10)
       {
           if (arg == 13)
               Console.WriteLine (" <EOL>");
           else
               Console.Write (Convert.ToChar(arg));
       }
       Console.WriteLine();
       Console.WriteLine ("Now, using the Read() function and " +
                          "clearing the buffer");
       Console.Write("Type one or more characters: ");
       arg = Console.Read ();
       string str = Console.ReadLine();
       Console.WriteLine ("The character is " + Convert.ToChar(arg));
   }

}

      </source>


C# Basic Data Types

<source lang="csharp"> using System; public class BasicDataTypes {

   public static void Main(string[] args)
   {
       Console.WriteLine("Value is: {0}", 3);
   }

}

      </source>


C# Hello Universe

<source lang="csharp"> using System; public class HelloDealWithCommandLineInput {

   public static void Main(string[] args)
   {
       Console.WriteLine("Hello, Universe");
       
       // iterate over command-line arguments, and print them out
       for (int arg = 0; arg < args.Length; arg++)
       Console.WriteLine("Arg {0}: {1}", arg, args[arg]);
   }

}

      </source>


Console command-line arguments

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

using System;

public class CLDemo {

 public static void Main(string[] args) { 
   Console.WriteLine("There are " + args.Length + 
                      " command-line arguments."); 

   Console.WriteLine("They are: "); 
   for(int i=0; i<args.Length; i++)  
     Console.WriteLine(args[i]);  
 }  

}


      </source>


constructs sentences by concatenating user input until the user enters one of the termination characters

<source lang="csharp"> using System; public class MainClass {

   public static void Main(string[] args) {
       string sSentence = "";
       for (; ; ) {
           Console.WriteLine("Enter a string");
           string sLine = Console.ReadLine();
           if (IsTerminateString(sLine)) {
               break;
           }
           sSentence = String.Concat(sSentence, sLine);
           Console.WriteLine("\nYou"ve entered: {0}", sSentence);
       }
   }
   public static bool IsTerminateString(string source) {
       string[] sTerms = {"EXIT","exit","QUIT","quit"};
       foreach (string sTerm in sTerms) {
           if (String.rupare(source, sTerm) == 0) {
               return true;
           }
       }
       return false;
   }

}

</source>


Convert input from control to upper case

<source lang="csharp"> using System; public class MainClass {

   static void Main() {
       Console.WriteLine("Enter command:");
       string resp = (Console.ReadLine()).ToLower();
       switch (resp) {
           case "a":
               Console.WriteLine("Doing Task A");
               break;
           case "b":
               Console.WriteLine("Doing Task B");
               break;
           case "c":
               Console.WriteLine("Doing Task C");
               break;
           default:
               Console.WriteLine("Bad choice");
               break;
       }
   }

}

</source>


Demonstrates redirecting the Console output to a file

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// Redirect.cs -- Demonstrates redirecting the Console output to a file // // Compile this program with the following command line: // C:>csc Redirect.cs // using System; using System.IO; namespace nsStreams {

   public class Redirect
   {
       static public void Main ()
       {
           FileStream ostrm;
           StreamWriter writer;
           TextWriter oldOut = Console.Out;
           try
           {
               ostrm = new FileStream ("./Redirect.txt", FileMode.OpenOrCreate, FileAccess.Write);
               writer = new StreamWriter (ostrm);
           }
           catch (Exception e)
           {
               Console.WriteLine ("Cannot open Redirect.txt for writing");
               Console.WriteLine (e.Message);
               return;
           }
           Console.SetOut (writer);
           Console.WriteLine ("This is a line of text");
           Console.WriteLine ("Everything written to Console.Write() or");
           Console.WriteLine ("Console.WriteLine() will be written to a file");
           Console.SetOut (oldOut);
           writer.Close();
           ostrm.Close();
           Console.WriteLine ("Done");
       }
   }

}

      </source>


Demonstrates some of the formatting flags for writing text to the console

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

/*

   Format.cs. Demonstrates some of the formatting flags for writing text
              to the console.
              Compile this program with the following command line:
                  C:>csc format.cs
  • /

namespace nsFormat {

   using System;
   public class Format
   {
       static readonly double e = 2.71828;
       static void Main()
       {
           Console.WriteLine ("Integer dollar amount: {0,0:C}", 3);
           Console.WriteLine ("Floating dollar amount: {0,0:C}", 3.29);
           Console.WriteLine ("Integer value: {0,0:D5}", 1024);
           Console.WriteLine ("Integer value: {0,0:N5}", 1024742);
           Console.WriteLine ("Integer value: {0,0:N}", 1024742);
           Console.WriteLine ("Integer value: {0,0:N5}", 1024742);
           Console.WriteLine ("Integer value: {0,0:X}", 1024742);
           Console.WriteLine ("Floating point e: {0,0:F3}", e);
           Console.WriteLine ("Floating point e: {0,-8:F5}", e);
           Console.WriteLine ("Floating point e: {0,-8:E2}", e);
           Console.WriteLine ("Floating point e: {0,-8:E}", e);
       }
   }

}

      </source>


Demonstrate various format specifiers

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Demonstrate various format specifiers.

using System;

public class FormatDemo {

 public static void Main() {  
   double v = 17688.65849;  
   double v2 = 0.15;  
   int x = 21;  
  
   Console.WriteLine("{0:F2}", v);  
 
   Console.WriteLine("{0:N5}", v);  
 
   Console.WriteLine("{0:e}", v);  
 
   Console.WriteLine("{0:r}", v);  
 
   Console.WriteLine("{0:p}", v2);  
 
   Console.WriteLine("{0:X}", x);  
 
   Console.WriteLine("{0:D12}", x);  

   Console.WriteLine("{0:C}", 189.99);  
 }  

}


      </source>


Illustrates how to read a character entered using the keyboard

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example2_13.cs illustrates how to read
 a character entered using the keyboard
  • /

public class Example2_131 {

 public static void Main()
 {
   System.Console.Write("Enter a character: ");
   char myChar = (char) System.Console.Read();
   System.Console.WriteLine("You entered " + myChar);
 }

}

      </source>


Illustrates how to read a string entered using the keyboard

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example2_14.cs illustrates how to
 read a string entered using the keyboard
  • /

public class Example2_141 {

 public static void Main()
 {
   System.Console.Write("Enter a string: ");
   string myString = System.Console.ReadLine();
   System.Console.WriteLine("You entered " + myString);
 }

}


      </source>


input a series of numbers separated by commas, parse them into integers and output the sum

<source lang="csharp"> using System; class Class1 {

   public static void Main(string[] args) {
       Console.WriteLine("Input a series of numbers separated by commas:");
       string input = Console.ReadLine();
       char[] cDividers = { ",", " " };
       string[] segments = input.Split(cDividers);
       int nSum = 0;
       foreach (string s in segments) {
           if (s.Length > 0) {
               if (IsAllDigits(s)) {
                   int num = Int32.Parse(s);
                   Console.WriteLine("Next number = {0}", num);
                   nSum += num;
               }
           }
       }
       Console.WriteLine("Sum = {0}", nSum);
   }
   public static bool IsAllDigits(string sRaw) {
       string s = sRaw.Trim();
       if (s.Length == 0) {
           return false;
       }
       for (int index = 0; index < s.Length; index++) {
           if (Char.IsDigit(s[index]) == false) {
               return false;
           }
       }
       return true;
   }

}

</source>


Input from the console using ReadLine()

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Input from the console using ReadLine().

using System;

public class ReadString {

 public static void Main() { 
   string str; 

   Console.WriteLine("Enter some characters."); 
   str = Console.ReadLine(); 
   Console.WriteLine("You entered: " + str); 
 } 

}


      </source>


Output with parameters

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /

public class AssignedValues {

   static void Main( )
   {
      int myInt;
      //other code here...
      myInt = 7;  // assign to it
      System.Console.WriteLine("Assigned, myInt: {0}", myInt);
      myInt = 5;
      System.Console.WriteLine("Reassigned, myInt: {0}", myInt);
   }
}
          
      </source>


Read a character from the keyboard

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Read a character from the keyboard.

using System;

public class KbIn {

 public static void Main() { 
   char ch; 

   Console.Write("Press a key followed by ENTER: "); 

   ch = (char) Console.Read(); // get a char 
   
   Console.WriteLine("Your key is: " + ch); 
 }   

}

      </source>


Read a line from console

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// dbTest.cs -- Sample program to be used with cordbg.exe // // Compile this program with the following command line: // C:>csc /debug:full dbTest.cs // using System; namespace nsDebug {

   public class dbTest
   {
       static public void Main ()
       {
           double x = 7.0;
           while (true)
           {
               Console.Write ("\r\nPlease enter a number: ");
               string str = Console.ReadLine ();
               if (str.Length == 0)
                   break;
               double val = 0;
               try
               {
                   val = Convert.ToDouble (str);
               }
               catch (Exception)
               {
                   Console.WriteLine ("\r\nInvalid number");
                   continue;
               }
               Console.WriteLine (x + " X " + val + " = {0,0:F6}", val / x);
           }
       }
   }

}


      </source>


Read a string from the keyboard, using Console.In directly

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Read a string from the keyboard, using Console.In directly.

using System;

public class ReadChars2 {

 public static void Main() { 
   string str; 

   Console.WriteLine("Enter some characters."); 

   str = Console.In.ReadLine(); 

   Console.WriteLine("You entered: " + str); 
 } 

}


      </source>


Read double and int from console

<source lang="csharp"> using System; using System.Collections.Generic; using System.Text; class Program {

   static void Main(string[] args) {
       (new Program()).run();
   }
   public void run() {
       double dailyRate = readDouble("Enter your daily rate: ");
       int noOfDays = readInt("Enter the number of days: ");
       writeFee(calculateFee(dailyRate, noOfDays));
   }
   private void writeFee(double p) {
       Console.WriteLine("The consultant"s fee is: {0}", p * 1.1);
   }
   private double calculateFee(double dailyRate, int noOfDays) {
       return dailyRate * noOfDays;
   }
   private int readInt(string p) {
       Console.Write(p);
       string line = Console.ReadLine();
       return int.Parse(line);
   }
   private double readDouble(string p) {
       Console.Write(p);
       string line = Console.ReadLine();
       return double.Parse(line);
   }

}

</source>


Redirect Console.Out

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Redirect Console.Out.

using System; using System.IO;

public class Redirect {

 public static void Main() { 
   StreamWriter log_out; 

   try { 
     log_out = new StreamWriter("logfile.txt"); 
   } 
   catch(IOException exc) { 
     Console.WriteLine(exc.Message + "Cannot open file."); 
     return ; 
   } 
   
   // Direct standard output to the log file. 
   Console.SetOut(log_out); 
   Console.WriteLine("This is the start of the log file."); 

   for(int i=0; i<10; i++) Console.WriteLine(i); 

   Console.WriteLine("This is the end of the log file."); 
   log_out.Close(); 
 } 

}


      </source>


Terminate a control input

<source lang="csharp"> using System; public class MainClass {

   static void Main() {
       string resp;
       Console.WriteLine("Enter command ("x" to end):");
       while ((resp = (Console.ReadLine()).ToLower()) != "x") {
           switch (resp) {
               case "a":
                   Console.WriteLine("Doing Task A");
                   break;
               case "b":
                   Console.WriteLine("Doing Task B");
                   break;
               default:
                   Console.WriteLine("Bad choice");
                   break;
           }
       }
   }

}

</source>


This program averages a list of numbers entered by the user

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// This program averages a list of numbers entered by the user.

using System; using System.IO;

public class AvgNums {

 public static void Main() {  
   string str;  
   int n;  
   double sum = 0.0; 
   double avg, t;  
     
   Console.Write("How many numbers will you enter: ");  
   str = Console.ReadLine(); 
   try { 
     n = Int32.Parse(str); 
   }  
   catch(FormatException exc) { 
     Console.WriteLine(exc.Message); 
     n = 0; 
   } 
   catch(OverflowException exc) { 
     Console.WriteLine(exc.Message); 
     n = 0; 
   } 
   
   Console.WriteLine("Enter " + n + " values."); 
   for(int i=0; i < n ; i++)  {  
     Console.Write(": "); 
     str = Console.ReadLine();  
     try {  
       t = Double.Parse(str);  
     } catch(FormatException exc) {  
       Console.WriteLine(exc.Message);  
       t = 0.0;  
     }  
     catch(OverflowException exc) { 
       Console.WriteLine(exc.Message); 
       t = 0; 
     } 
     sum += t;  
   }  
   avg = sum / n; 
   Console.WriteLine("Average is " + avg); 
 }  

}


      </source>


Use do while to read console input

<source lang="csharp"> using System; public class MainClass {

   static void Main() {
       string resp;
       do {
           Console.WriteLine("Menu\n\n1 - Task A");
           Console.WriteLine("2 - Task B");
           Console.WriteLine("E - E(xit)");
           resp = (Console.ReadLine()).ToLower();
       }
       while (resp != "e");
   }

}

</source>


Use format commands

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Use format commands.

using System;

public class DisplayOptions {

 public static void Main() {    
   int i; 

   Console.WriteLine("Value\tSquared\tCubed"); 

   for(i = 1; i < 10; i++) 
     Console.WriteLine("{0}\t{1}\t{2}",  
                       i, i*i, i*i*i); 
 }    

}

      </source>


Uses the #, 0 and comma characters to format output

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

/*

   Picture.cs.  Uses the #, 0 and comma characters to format output
  • /

using System; public class Picture {

   static void Main()
   {
       Console.WriteLine ("Using the # character");
       Console.WriteLine ("\tInteger dollar amount: {0,0:$###.##}", 3);
       Console.WriteLine ("\tFloating dollar amount: {0,0:$###.##}", 3.29);
       Console.WriteLine ("\tInteger value: {0,0:###,###}",1428);
       Console.WriteLine ("\tFloating point value: {0,0:#,###.#####}", 1428.571);
       Console.WriteLine ("Using the $ character");
       Console.WriteLine ("\tInteger dollar amount: {0,0:$000.00}", 3);
       Console.WriteLine ("\tFloating dollar amount: {0,0:$000.00}", 3.29);
       Console.WriteLine ("Using the comma alone");
       Console.WriteLine ("\tInteger value: {0,0:000,000}", 1428);
       Console.WriteLine ("\tFloating point value: {0,0:0,000.000}", 1428.571);
   }

}


      </source>


Use while(true) to read console input

<source lang="csharp"> using System; public class MainClass {

   static void Main() {
       string resp;
       while (true) {
           Console.WriteLine("Menu\n\n1 - Task A");
           Console.WriteLine("2 - Task B");
           Console.WriteLine("E - E(xit)");
           resp = (Console.ReadLine()).ToLower();
           if (resp == "e") {
               break;
           }
       }
   }

}

</source>


While loop and keyboard reading

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

namespace nsLoops {

   using System;
   
   public class Loops
   {
       static public void Main ()
       {
           int [] arr = new int [5];
           for (int x = 0; x < arr.Length; ++x)
           {
               bool done = false;
               while (!done)
               {
                   Console.Write ("Enter a value for element {0}: ", x);
                   string str = Console.ReadLine ();
                   int val;
                   try
                   {
                       val = int.Parse (str);
                   }
                   catch (FormatException)
                   {
                       Console.WriteLine ("Please enter an integer value\r\n");
                       continue;
                   }
                   arr[x] = val;
                   done = true;
               }
           }
           int index = 0;
           foreach (int val in arr)
           {
               Console.WriteLine ("arr[{0}] = {1}", index, val);
               ++index;
           }
       }
   }

}

      </source>


Write to Console.Out and Console.Error

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Write to Console.Out and Console.Error.

using System;

public class ErrOut {

 public static void Main() { 
   int a=10, b=0; 
   int result; 

   Console.Out.WriteLine("This will generate an exception."); 
   try { 
     result = a / b; // generate an exception 
   } catch(DivideByZeroException exc) { 
     Console.Error.WriteLine(exc.Message); 
   } 
 } 

}


      </source>