Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
235 views
in Technique[技术] by (71.8m points)

c++ - Why are escape characters not working when I read from cin?

(a)

string str = "Hello
World";

When I print str, the output is:

Hello
World

(b)

string str;
cin >> str;      //given input as Hello
World

When I print str, the output is:

Hello
World

What is the difference between (a) and (b)?

question from:https://stackoverflow.com/questions/51864157/why-are-escape-characters-not-working-when-i-read-from-cin

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The C++ compiler has certain rules when control characters are provided - documentation. As you can see, when you specify in a string literal it is replaced by the compiler with a line feed (value 0xa for ASCII). So instead of 2 symbols, and n, you get one symbol with binary code 0xa (I assume you use ASCII encoding), which makes the console move output to a new line when printed. When you read a string the compiler is not involved and your string has the actual symbols and n in it.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...