for循环和while循环几乎等效
#include
using namespace std;
int main(void){
long wait=0;
while (wait<100){
wait++;
};
return 0;
}
ANSI C和C++库中有一个函数有助于完成这样的工作. 这个函数名为clock(),用于返回程序开始执行后所用的系统时间 但是存在两个问题: 1 clock()返回的不一定是秒数; 2 在不同系统上操作返回的类型可能不相同; 可以用ctime中的一个符号常量 CLOCKS_PER_SEC, 该常数等于每秒钟包含的系统时间单位数.
#include
#include
using namespace std;
int main(void){
float secs;
cin>>secs;
clock_t delay=secs*CLOCKS_PER_SEC;
cout<<"starting\a\n";
clock_t start=clock();
while (clock()-start<delay);
cout<<"done\a\n";
return 0;
}
1#define name type
例子:
#define Byte char;
2typedef type name
typedef char * Byte;
do while 循环与其他循环的区别:
do while 循环至少执行循环体一次,
其他循环至少执行循环体0次.
#include
using namespace std;
int main(void){
int x=10;
for (;x<10;x++)
cout<<x<<endl;
cout<<x<<endl;
return 0;
}
#include
using namespace std;
int main(void){
int x=10;
while (x<10){
cout<<x<<endl;
x++;
}
cout<<x<<endl;
return 0;
}
#include
#include
using namespace std;
int main(void){
int x=10;
do{
cout<<x<<endl;
x++;
}while (x<10);
cout<<x<<endl;
return 0;
}
C++11版本新增了一种循环:基于范围(range-based)的for循环.
#include
int main(void){
double price[5]={0.1,0.2,0.3,0.4,0.5};
for (double &x:price)
x=x*5;
return 0;
}
#include
int main(void){
double price[5]={0.1,0.2,0.3,0.4,0.5};
for (double x:price)
cout<<x<<std::endl;
return 0;
}
#include
using namespace std;
int main(void){
char ch;
int count=0;
cin>>ch;
while (ch!='!'){
cout<<ch;
count++;
cin>>ch;
}
cout<<count<<endl;
return 0;
}
#include
using namespace std;
int main(void){
char ch;
int count=0;
cin>>ch;
while (ch!='!'){
cout<<ch;
count++;
cin.get(ch);
}
cout<<count<<endl;
return 0;
}
如果输入来自于文件,则可以使用一种功能强大的技术—检测文件尾(EOF)
如果编程环境能够检测EOF, 可以在类似于上一个程序示例中使用重定向文件的文件 (重定向:假设在Windows中有一个名为gofish.exe的可执行程序和一个
名为fishtale的文本文件,则可以在命令提示符模式下输入下面的命令
gofish < fishtale
,这样程序将从fishtale文件(而不是键盘)获取输入,符号 < 是Unix和Windows
命令提示符模式的重定向运算符)
#include
using namespace std;
int main(void){
char ch;
int count=0;
cin>>ch;
while (cin.fail()== false){
cout<<ch;
count++;
cin.get(ch);
}
cout<<count<<endl;
return 0;
}
改编上述程序:
#include
using namespace std;
int main(void){
int ch;
int count=0;
ch=cin.get();
while (ch != EOF){
cout.put(ch);
count++;
ch=cin.get();
}
cout<<count<<endl;
return 0;
}
继续简便一下:
#include
using namespace std;
int main(void){
int ch;
int count=0;
while ((ch=cin.get()) != EOF){
cout.put(ch);
count++;
}
cout<<count<<endl;
return 0;
}
type name[rows][colums]
多维数组可用嵌套循环进行部分操作:
#include
using namespace std;
int main(void){
int arr[2][2]={{1,20},{2,10}};
for (int i=0;i<2;i++){
for (int j=0;j<2;j++){
cout<<arr[i][j]<<' ';
}
cout<<endl;
}
return 0;
}