03 从一个小程序说起
使用"cin>>"判定,是否为非法输入
while(cin>>i)
当输入的数据不为整型时,判断为false,退出循环。***************************************************************************************************
#include <iostream>
using namespace std;
int main()
{
int i;
char ch;
int sum = 0;
while(cin>>i)//12 2 3 4 5
{
sum += i;
while(cin.peek()==' ') //屏蔽空格
{
cin.get();
}
if(cin.peek() == '\n')
{
break;
}
}
cout<<"sum = "<<sum<<endl;
return 0;
}
cin.ignore(7)
作用:忽视前7个字符
#include <iostream>
using namespace std;
int main()
{
char buf[20];
cin.ignore(7);
cin>>buf;
cout<<"buf="<<buf<<endl;
return 0;
}
cin.gcount(),cin.write()与cin.read()的使用
#include <iostream>
using namespace std;
int main()
{
char p[20];
cout<<"请输入文本:"<<endl;
cin.read(p,20);
cout<<"输出文本的个数"<<cin.gcount()<<endl;
cout<<"输出文本:"<<endl;
cout.write(p,20);
return 0;
}
cin.write(5)//每次输出,占5个字符
cin.read(5)//每次接收,均接受5个字符
#include <iostream>
using namespace std;
int main()
{
int w = 4;
char str[20];
cout<<"请输入一段文本"<<endl;
cin.width(5);
while( cin >> str)
{
cout.width(10);
cout << str <<endl;
cin.width(5);
}
return 0;
}
05 从另一个程序说起
输出输入小结:
在应用程序结束的地方为了应用不是一闪而过,加入get()一个字符来退出程序。
#include <iostream>
int main()
{
std::cout<<"请问是否关机?【Y/N】"<<"\n";
char anwser;
std::cin >> anwser;
switch(anwser)
{
case 'Y':
case 'y':
std::cout<<"即将关机"<<"\n";
break;
case 'N':
case 'n':
std::cout<<"返回主界面"<<"\n";
break;
}
std::cin.ignore(100,'\n');
std::cin.get();
return 0;
}
07复杂的数据类型
定义一个数组容纳10个整数,这些整数来自用户输入。我们将计算这些值的累加和和平均值并输出。
#include <iostream>
#define LEN 3
int main()
{l
int arr[LEN];
int i = 0,sum=0;
std::cout<<"请输入"<<LEN<<"个整型数据:\n"<<std::endl;
for(i = 0;i<LEN;i++)
{
std::cout<<"请输入第 "<<i+1<<"个数据:";
while(!(std::cin>>arr[i])) //非法拦截
{
std::cin.clear();
std::cin.ignore(100,'\n');
std::cout<<"输入错误,请输入第 "<<i+1<<"个数据:";
}
sum += arr[i];
}
float aver = sum/(float)LEN;
std::cout<<"累加和为:"<<sum<<std::endl;
std::cout<<"average = " <<aver <<std::endl;
return 0;
}
08 复杂的数据类型–指针