473,394 Members | 1,701 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

\n in C#?

Hi all,

Probably the first thing most of you learn, but I don't know the
newline character for C#.

Thanks,
James

Nov 17 '05 #1
14 76321
You can use the "NewLine" property of the "Environment" class...
http://msdn.microsoft.com/library/de...wlinetopic.asp

--
Tim Wilson
..NET Compact Framework MVP

"James" <ja**********@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
Hi all,

Probably the first thing most of you learn, but I don't know the
newline character for C#.

Thanks,
James

Nov 17 '05 #2
string newline = System.Environment.NewLine;

That's how you retrieve it for whatever system you're running on.
Remember, your .net code can sometimes run on linux systems (or any unix
at all) using Mono. If you want to print a line without a newline
after, use:

Console.Write("blahblah");

If you want to print a line to the screen FOLLOWED by a newline
(independent of the system) use:

Console.WriteLine("bbllaahh");

This will work cross platform, as well as the first line of code above.
Don't hardcode in specific newline sequences such as \n, \r\n, or \r.

--
jeremiah();

James wrote:
Hi all,

Probably the first thing most of you learn, but I don't know the
newline character for C#.

Thanks,
James

Nov 17 '05 #3
jeremiah johnson <us**@example.com> wrote:

<snip>
This will work cross platform, as well as the first line of code above.
Don't hardcode in specific newline sequences such as \n, \r\n, or \r.


It depends on what you're doing. If you're writing to files which want
the system newline, then you should indeed use WriteLine and/or
Environment.NewLine.

If, however, you're dealing with a network protocol, you absolutely
*should* use \r, \n or \r\n, because the protocol will (or at least
should) define what *it* thinks is the the newline. At that point, if
you use Environment.NewLine you *will* have a bug on one platform or
other.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #4
On 14 Oct 2005 14:10:40 -0700, "James" <ja**********@gmail.com> wrote:
Hi all,

Probably the first thing most of you learn, but I don't know the
newline character for C#.

Thanks,
James


Try either \r or \r\n.

rossum

The ultimate truth is that there is no ultimate truth
Nov 17 '05 #5
JS
>
Probably the first thing most of you learn, but I don't know the
newline character for C#.


The newline character is O/S dependent. I would use the
Environment.NewLine, as others have already suggested. However, if you are
determined to use a character sequence...

\r = newline for macintosh
\r\n = newline for windows
\n = newline for UNIX based systems

....the NewLine that everone mentioned will determine the O/S and use the
appropriate value for that O/S.
Nov 17 '05 #6

"JS" <pl*********@use.net> wrote in message
news:Xn******************************@207.46.248.1 6...

Probably the first thing most of you learn, but I don't know the
newline character for C#.


The newline character is O/S dependent. I would use the
Environment.NewLine, as others have already suggested. However, if you
are
determined to use a character sequence...

\r = newline for macintosh
\r\n = newline for windows
\n = newline for UNIX based systems


This is the kind of thing that ought to be built into the language as
something more concise than Environment.NewLine. Maybe define \N as the
OS-dependent newline, known to the compiler.
Nov 17 '05 #7
Michael A. Covington <lo**@ai.uga.edu.for.address> wrote:
This is the kind of thing that ought to be built into the language as
something more concise than Environment.NewLine. Maybe define \N as the
OS-dependent newline, known to the compiler.


No - precisely because it's *not* known to the compiler. The compiler
doesn't know what platform the code is going to *run* on, it only knows
the platform it's being *compiled* on.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #8
Mmm Jon,

Pardon my confusion, but was interested in such a long thread about such a
simple topic (at first glance). Reflector gives the following code:

public static string get_NewLine()
{
return "\r\n";
}

Isn't this the compiler hard coding the newline string?

Scott

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Michael A. Covington <lo**@ai.uga.edu.for.address> wrote:
This is the kind of thing that ought to be built into the language as
something more concise than Environment.NewLine. Maybe define \N as the
OS-dependent newline, known to the compiler.


No - precisely because it's *not* known to the compiler. The compiler
doesn't know what platform the code is going to *run* on, it only knows
the platform it's being *compiled* on.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

Nov 17 '05 #9
Scott Coonce <sd******@gmail.HEY_YOU.com> wrote:
Pardon my confusion, but was interested in such a long thread about such a
simple topic (at first glance). Reflector gives the following code:

public static string get_NewLine()
{
return "\r\n";
}

Isn't this the compiler hard coding the newline string?


Absolutely not, in terms of the compiler of a program which *uses*
Environment.NewLine - it's the runtime which you're using on Windows
hard-coding it. A runtime on Linux might have an implementation of:

public static string get_NewLine()
{
return "\n";
}

So a program like the following, compiled on Windows but run on Linux,
would print out 1 rather than 2:

using System;

public class Test
{
static void Main()
{
Console.WriteLine (Environment.NewLine.Length);
}
}

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #10
I write a lot of software that interacts with older systems, Unix servers,
and the like (U.S. government agencies), using protocols like FTP, UDP, and
Telnet. Once you step out of the Microsoft sandbox, you're in a world of
trouble, as JS pointed out. A newline isn't a newline when you move data
across different platforms. I have even had to write code that inserts
"\r\r\n" at the end of a line, due to a proprietary (and probably ancient)
format in use by the U.S. National Weather Service's METAR data FTP server.

So, the real answer is, inside the Microsoft sandbox, Environment.Newline is
fine. "\r\n" is fine. When interacting with other systems, a little research
is always in order. I have also found out that when receiving data from
other sources, you often have to watch out for default .Net conversions.
Sometimes the platform is a bit too automatic for my own good! Still, it has
built-in mechanisms to deal with these sorts of cases, but you do have to
watch out for them.

--
HTH,

Kevin Spencer
Microsoft MVP
..Net Developer
Ambiguity has a certain quality to it.

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Scott Coonce <sd******@gmail.HEY_YOU.com> wrote:
Pardon my confusion, but was interested in such a long thread about such
a
simple topic (at first glance). Reflector gives the following code:

public static string get_NewLine()
{
return "\r\n";
}

Isn't this the compiler hard coding the newline string?


Absolutely not, in terms of the compiler of a program which *uses*
Environment.NewLine - it's the runtime which you're using on Windows
hard-coding it. A runtime on Linux might have an implementation of:

public static string get_NewLine()
{
return "\n";
}

So a program like the following, compiled on Windows but run on Linux,
would print out 1 rather than 2:

using System;

public class Test
{
static void Main()
{
Console.WriteLine (Environment.NewLine.Length);
}
}

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too

Nov 17 '05 #11

"Jon Skeet [C# MVP]" <sk***@pobox.com> wrote in message
news:MP************************@msnews.microsoft.c om...
Michael A. Covington <lo**@ai.uga.edu.for.address> wrote:
This is the kind of thing that ought to be built into the language as
something more concise than Environment.NewLine. Maybe define \N as the
OS-dependent newline, known to the compiler.


No - precisely because it's *not* known to the compiler. The compiler
doesn't know what platform the code is going to *run* on, it only knows
the platform it's being *compiled* on.


OK, then, the compiler should insert some code to insert the correct value
at run time.

Nov 17 '05 #12
Michael A. Covington <lo**@ai.uga.edu.for.address> wrote:
No - precisely because it's *not* known to the compiler. The compiler
doesn't know what platform the code is going to *run* on, it only knows
the platform it's being *compiled* on.


OK, then, the compiler should insert some code to insert the correct value
at run time.


It certainly *could* do that - but that would have significant
consequences in terms of literals and interning, without pretty tricky
bits of magic going on. I prefer to keep it simple as far as the
language is concerned, and let the developer specify
Environment.NewLine if they want to. The idea of a *literal* meaning
different things on different platforms doesn't appeal to me.

--
Jon Skeet - <sk***@pobox.com>
http://www.pobox.com/~skeet Blog: http://www.msmvps.com/jon.skeet
If replying to the group, please do not mail me too
Nov 17 '05 #13
You've got a point, there.

Nov 17 '05 #14
You've got a point, there.

Nov 17 '05 #15

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL)...
2
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues...
3
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which...
0
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. ...
1
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the...
4
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the...
1
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url ...
2
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value...
3
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.