29

I am VERY new to C#/programming and as a learning exercise completed an online challenge to change text to lowercase. The challenge specified it must 'print to stdout' yet I completed the challenge by using Console.Writeline

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Lowercase
{
    class Program
    {
        static void Main(string[] args)
        {
            using ( StreamReader reader = new StreamReader("TextFile1.txt")) 
            {
                while (!reader.EndOfStream)
                {
                    string line = reader.ReadLine();
                    Console.WriteLine(line.ToLower());
                }

                Console.ReadLine();
            }
        }
    }
}

Is stdout just another name for outputting to console (submissions could be in many different languages) or did the online code submission just not check the output properly. I have googled 'stdout c#' but don't fully understand the results.

pb2q
  • 58,613
  • 19
  • 146
  • 147
Prendoza
  • 317
  • 1
  • 3
  • 7

1 Answers1

42

In languages like C and C++, there is a global variable with the name stdout, which is a pointer to the standard output stream. Thus, stdout has become a commonly used abbreviation for "standard output stream" even outside the context of the C language.

Now, what does C# do? Let's have a look at the documentation of Console.WriteLine (emphasis mine):

Writes the specified string value, followed by the current line terminator, to the standard output stream.

So, yes, Console.WriteLine does exactly what you need to do. If you need a direct reference to the standard output stream (Hint: you usually don't), you can use the Console.Out property.

Heinzi
  • 167,459
  • 57
  • 363
  • 519
  • 4
    Thanks for answering my query, it looks like i need to improve my researching skills as well as my coding :-) – Prendoza Jul 20 '15 at 18:30
  • 2
    @heinzi Console.Out is a System.IO.TextWriter, not a stream. Console.OpenStandardOutput() is a Stream. – Goku Aug 29 '18 at 22:21