1.要求∶编写一个程序﹐要求用户输入一串整数和任意数目的空格·这些整数必颈位于同一行中·但允许出现在该行中的任何位置·当用户按下键盘上的“Enter”键时·数据输入结束·程序动对所有的整数进行求和并打印出结果。
方法一:
#include<stdio.h>
int main()
{
char str[100];
char *p=str;
gets(str);
int num=0;
int sum=0;
while(*p!='\0')
{
if(*p>='0'&&*p<='9')
{
for(num=0;*p>='0'&&*p<='9';*p++)
{
num=num*10+*p-'0';
}
sum=sum+num;
}
else
*p++;
}
printf("%d",sum);
return 0;
}
方法二:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0;
int sum = 0;
char ch;
printf("请输入一串整数和任意数目的空格:");
while (scanf("%d", &i) == 1)
{
sum += i;
while ((ch = getchar()) == ' '); //从输入流按顺序接着取出一个字符,判断是否为空格
if (ch == '\n')
{
break; //getchar已经把内存读入,此时判断是否为换行,如果是,则退出
}
ungetc(ch, stdin); //此语句用于把getchar从输入流取出的字符放回输入流
}
printf("结果是:%d\n",sum);
fflush(stdin);//清空输入缓冲区(加不加不影响结果)
system("pause");
return 0;
}
方法三:
#include<iostream>
using namespace std;
int main()
{
int sum=0;
int i;
while(cin>>i)
{
sum+=i;
while(cin.peek()==' ')
{
cin.peek();
}
if(cin.peek()=='\n')
{
break;
}
}
cout<<sum<<endl;
return 0;
}
方法四:
#include<iostream>
using namespace std;
int main() {
int sum = 0;
int c;
while (cin.peek() != '\n') {//遇到换行符终止输入
cin >> c;
sum += c;
while (cin.peek() == ' ') { //遇到空格忽略,继续传入数字
cin.get();
}
}
cout << sum << endl;
return 0;
}
2.一些cin对象的使用方法
1.
#include<iostream>
using namespace std;
int main() {
char ch[20];
cout << "enter a sentence:" << endl;
cin.get(ch, 10, '\n');//指定换行符为终止字符,由于限定了长度,所以输出会被截断!
cout << ch << endl;
return 0;
}
2.
#include<iostream>
using namespace std;
int main()
{
char a[20];
cin.ignore(6);//忽略前面六个字符
cin.getline(a,10,'9');
cout<<a<<endl;
}
3.
#include<iostream>
using namespace std;
int main()
{
const int i=40;
char a[i];
cin.read(a,20);
cout<<"字符串收集到的字符数为:"<<cin.gcount()<<endl;
cout<<"输入的文本信息为:";
cout.write(a,20);
cout<<endl;
return 0;
}
3.cout的常用方法
cout << "以十进制显示i:" << dec << i << endl;//以十进制显示
cout << "以八进制显示i:" << oct << i << endl;//以八进制显示
cout << "以16进制显示i:" << hex << i << endl;//以16进制显示
cout.precision(对输出输出流cout的一个格式控制函数,也就是在iostream中的一个成员函数)
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
double n;
cout<<"请输入一个数:"<<endl;
cin>>n;
cout<<"对于"<<"开平方的求解:"<<endl;
double m=sqrt(n);
cout<<m<<endl;
for(int i=1;i<=9;i++)
{
cout.precision(i);
cout<<m<<endl;
}
return 0;
}
#include<iostream>
#include<math.h>
#include<iomanip>
using namespace std;
int main()
{
double n;
cout<<"请输入一个数:"<<endl;
cin>>n;
cout<<"对于"<<"开平方的求解:"<<endl;
double m=sqrt(n);
cout<<m<<endl;
cout.setf(ios::fixed);
for(int i=1;i<=9;i++)
{
cout.precision(i);
cout<<m<<endl;
}
return 0;
}