我們知道,std::cout<<endl是使輸入的數強制輸出,以前我沒發現,今天發現,如果是輸入一行數的話,使用這個std::cout<<endl,程序是默認每輸出一個數就回車的,而不是排成一行!
請看一下一例:
該程序要求輸入長度,然后輸出一個四條邊都帶相同數量星號的矩形。
#include<iostream>
using namespace std;
int main()
{
int side,rowPosition,size;
cout<<"input the square side: ";//輸入矩形的寬度
cin>>side;
size=side;//使長寬的邊所帶星號數量相同
while(side>0)//雙重循環輸出矩形
{
rowPosition=size;
while(rowPosition>0)
{
if(size==side||side==1||rowPosition==1||rowPosition==size)
cout<<'*'<<;
else
cout<<' ';
--rowPosition;
}
cout<<'\n';//在這里等一行自然輸出后,在利用cout<<‘\n'回車,輸出下一行
--side;
}
cout<<endl;//這里總的強制輸出所有輸入的字符
return 0;
}





程序運行效果如下圖,輸入8;

如果在程序的每條cout語句中加上<<endl; 那么程序運行的效果(圖所限,"end line": inserts a newline into the stream and calls flush.有省略一些)如下:

后注:剛剛在維基百科里查到std::endl的定義,它說,"end line": inserts a newline into the stream and calls flush. 這就是說endl的功能就是強制輸出和換行,現在懂了,感謝博友的認真更正,學習了。:)





