C++中endl的作用
#include<iostream.h>
void main()
{
cout<<"this is cargo charge program"<<endl;
float weight=20;
float charge=0;
charge=charge+(weight-15)*12;
cout<<weight<<endl;
cout<<charge<<endl;
}
其中cout<<"this is cargo charge program"<<endl;这一句中的endl如果不写会怎样?还有endl后面的分号(;)这个分号有什么作用不打可以吗?还有charge=charge+(weight-15)*12;这句能不能变成charge=(weight-15)*12;?为什么变量charge要初始化为零??如果不初始化为零可以吗?
能不能回答详细点啊!! 展开
和楼上说的一样,endl的作用是换行,不写对程序的运行没有影响,但是程序就不够美观了比如去掉endl,代码如下(附上运行结果):
#include<iostream.h>
void main()
{
cout<<"this is cargo charge program";
float weight=20;
float charge=0;
charge=charge+(weight-15)*12;
cout<<weight<<endl;
cout<<charge<<endl;
}
你看那运行结果,显然不利于结果查寻对吧,这就是endl的作用
至于你说分号能不能去掉,肯定不能啊,这是C或C++语言的语法规则,去掉无法通过编译,会出现语法错误,我试给你看
#include<iostream.h>
void main()
{
cout<<"this is cargo charge program"<<endl //注意这里缺少一个“;”
float weight=20;
float charge=0;
charge=charge+(weight-15)*12;
cout<<weight<<endl;
cout<<charge<<endl;
}
你看编译时错误提醒
Compiling...
12.cpp
D:\C源程序代码\12.cpp(5) : error C2144: syntax error : missing ';' before type 'float'
Error executing cl.exe.
12.obj - 1 error(s), 0 warning(s)
它说在你这个程序的第五行float定义前缺了一个“;”,也就是上面程序加注释的地方,你加上再编译就不会出错了
你说weight为什么赋初值为0,这个不一定,是看你的程序需要赋什么值,随程序需要可以赋任何值,同样你问的那个计算表达式也是由程序需要决定要不要加charge。
给你一点建议:以后诸如此类问题,你可以像我这样调试程序得到你想要的答案,加油吧^_^
推荐于2017-09-18 · 知道合伙人教育行家
可以插入到输出流中,效果为在输出结果中插入换行符'\n'。
要直接使用endl,需要使用std名空间,即使用:
using namespace std;
否则需要使用std::endl
以标准输出流cout为例:
cout << "this is a test string" <<endl;
的效果就是输出
this is a test string
后换行。
用于文件输出流或字符串输出流时用法类似。
======
貌似可以改成charge=(weight-15)*12;你可以改一下然后调试试试,变量初始化的主要作用是给它一个内存空间先。
可以写成
charge+=(weight-15)*12
分号是结束标志
不初始化不可以。。不然结果不可预料。。
http://wenwen.sogou.com/z/q737493795.htm
那个帖子里,你可以看到endl所起的作用,相信你的理解会更深一些。