编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行的任何位置。当用户按下enter键,数据输入停止。程序自动对所有的整数进行求和并打印出结果。

需要解决两个问题,提取数字,提取连续数字。

//c
#include<stdio.h> void main()
{
int sum=0;;
int i;
char ch; while(scanf("%d",&i)==1)
{
sum+=i; while((ch=getchar())==' ')//屏蔽空格
; if(ch=='\n')
break; ungetc(ch,stdin);//将变量ch中存放的字符退回给stdin输入流。 } printf("sum; %d\n",sum);
}

  

//c++
#include<iostream> using namespace std; int main()
{
int sum=0; cout<<"请输入"; int i; while(cin>>i)
{
sum+=i; while(cin.peek()==' ')
{
cin.get();
}
if(cin.peek()=='\n')
break;
} cout<<"sum:"<<sum<<endl; return 0; }

①表达式cin>>i返回输入流对象本身也就是cin,但如果读到文件尾或者提取操作符遇到一个非法值,返回值是false。

#include<iostream>

using namespace std;

int main()
{
char buf[20]; cin.ignore(7);
cin.getline(buf,10); cout<<buf<<endl; return 0;
}
/*
输入:12345 12345 12345 12345
输出:2345 1234
*/

②cin.ignore(7)忽视前七个字符

③cin.getline(buff,10)获取十个到buf中存放(第十位是'\0)

④using namespace std;名字空间,c++所有标识符都是在同一个特殊的名字空间(std)中定义的。如果没有使用这条指令,需要用std::cout这样的语法来调用输出流对象。

#include<iostream>

using namespace std;

int main()
{
const int SIZE=50;
char buf[SIZE]; cout<<"请输入一段文本:";
cin.read(buf,20); cout<<"字符串收集到的字符数为:"
<<cin.gcount()<<endl; cout<<"输入文本的信息是:";
cout.write(buf,20);
cout<<endl; return 0; }

  题目:程序向用户提出一个“Y/N"问题。然后把用户输入的值赋值给answer变量。

#include<iostream>

int main()
{
char answer; std::cout<<"请问可以格式化你的硬盘吗?【Y/N】"<<"\n";
std::cin>>answer; switch(answer)
{
case'Y':
case'y':
std::cout<<"随便格式化硬盘是不好的"<<"\n";
break;
case'N':
case'n':
std::cout<<"您的选择是明智的"<<"\n";
break;
default:
std::cout<<"您的输入不符合要求"<<"\n";
break;
}
return 0;
}

  题目:摄氏转换

#include<iostream>

int main()
{
//华氏温度==摄氏温度 *9.0/5.0+32;
const short ADD_SUBTRACT=32;
const double RATIO=9.0/5.0; double tempIn,tempOut;
char typeIn,typeOut; std::cout<<"请以【xx.C】或者【xx.F】格式输入一个温度:";
std::cin>>tempIn>>typeIn;
std::cin.ignore(100,'\n');//避免回车的影响
std::cout<<"\n"; switch(typeIn)
{
case'C':
case'c':
tempOut=tempIn*RATIO+ADD_SUBTRACT;
typeOut='F';
typeIn='C';
break;
case'F':
case'f':
tempOut=(tempIn-ADD_SUBTRACT)/RATIO;
typeOut='C';
typeIn='F';
break;
default:
typeOut='E';
break;
}
if(typeOut!='E')
{
std::cout<<tempIn<<typeIn
<<"="<<tempOut<<typeOut<<"\n";
}
else
{
std::cout<<"输入错误\n";
}
return 0;
}

重载(overloading)可以是参数个数,数据类型不同,但不能是返回值不同。

#include<iostream>

void convertTemperature(double tempIn,char typeIn);
void convertTemperature(int tempInInt,char typeIn); int main()
{
//华氏温度==摄氏温度 *9.0/5.0+32
double tempIn;
int tempInInt;
char typeIn; std::cout<<"请以【xx.C】或者【xx.F】格式输入一个温度:";
std::cin>>tempIn>>typeIn;
std::cin.ignore(100,'\n');//避免回车的影响
std::cout<<"\n";
convertTemperature(tempIn,typeIn); std::cout<<"请以【xx C】或者【xx F】格式输入一个温度:";
std::cin>>tempInInt>>typeIn;
std::cin.ignore(100,'\n');//避免回车的影响
std::cout<<"\n";
convertTemperature(tempInInt,typeIn); return 0;
}
void convertTemperature(double tempIn,char typeIn)
{
const short ADD_SUBTRACT=32;
const double RATIO=9.0/5.0; double tempOut;
char typeOut; switch(typeIn)
{
case'C':
case'c':
tempOut=tempIn*RATIO+ADD_SUBTRACT;
typeOut='F';
typeIn='C';
break;
case'F':
case'f':
tempOut=(tempIn-ADD_SUBTRACT)/RATIO;
typeOut='C';
typeIn='F';
break;
default:
typeOut='E';
break;
}
if(typeOut!='E')
{
std::cout<<tempIn<<typeIn
<<"="<<tempOut<<typeOut<<"\n";
}
else
{
std::cout<<"输入错误\n";
}
}
void convertTemperature(int tempInInt,char typeIn)
{
const short ADD_SUBTRACT=32;
const double RATIO=9.0/5.0; int tempOut;
char typeOut; switch(typeIn)
{
case'C':
case'c':
tempOut=tempInInt*RATIO+ADD_SUBTRACT;
typeOut='F';
typeIn='C';
break;
case'F':
case'f':
tempOut=(tempInInt-ADD_SUBTRACT)/RATIO;
typeOut='C';
typeIn='F';
break;
default:
typeOut='E';
break;
}
if(typeOut!='E')
{
std::cout<<tempInInt<<typeIn
<<"="<<tempOut<<typeOut<<"\n";
}
else
{
std::cout<<"输入错误\n";
}
}

  

cin cout的更多相关文章

  1. acdream B - 郭式树 (水题 卡cin,cout, 卡LL)

    题目 输入正好是long long的最大, 但是答案超long long 所以用unsigned, 不能用cin cout否则一定超时: 不能用abs(), abs 只用于整数. unsigned   ...

  2. printf scanf cin cout的区别与特征

    printf和scanf是c语言的输入输出,学习c++以后,自然是用cin cout这两个更简单的输入输出 printf scanf 都需要进行格式控制,比较麻烦,但优点是速度比较快,毕竟多做了一些事 ...

  3. C++输入输出流 cin/cout 及格式化输出简介

    C++ 可通过流的概念进行程序与外界环境( 用户.文件等 )之间的交互.流是一种将数据自源( source )推送至目的地( destination )的管道.在 C++ 中,与标准输入/输出相关的流 ...

  4. 892B. Wrath#愤怒的连环杀人事件(cin/cout的加速)

    题目出处:http://codeforces.com/problemset/problem/892/B 题目大意:一队人同时举刀捅死前面一些人后还活着几个 #include<iostream&g ...

  5. cin,cout,printf,scanf效率对比

    From:http://www.cnblogs.com/killerlegend/p/3918452.html Author:KillerLegend Date:2014.8.17 杭电OJ之3233 ...

  6. scanf printf gets() puts(),cin cout

    最近在练机试题,常用的C和C++输入输出如下: 1 scanf 和printf int a; scanf("%d",&a) ; printf("%d", ...

  7. cin/cout与scanf/printf的比较

    转自http://www.cnblogs.com/penelope/articles/2426577.html  cin .cout   基本说明: cin是标准输入流对象,代表标准输入设备(键盘), ...

  8. cin cout getline string

    1.C++ code, When we want to read a number whatever the type is int or double , just use cin >> ...

  9. C++输入输出常用格式(cin,cout,stringstream)

    输入格式 1.cin>>a; 最基本的格式,适用于各种类型.会过滤掉不可见字符例如空格,TAB,回车等 2.cin>>noskipws>>ch[i]; 使用了 no ...

随机推荐

  1. redis在.Net程序中使用

    1.设置访问密码 config 2.连接redis服务器 private static string redisHost = ConfigHelper.GetAppSetting("redi ...

  2. SPOJ_DSUBSEQ Distinct Subsequences

    统计一个只由大写字母构成的字符串的,子串数目,这里指的是子串不是子序列,可以不连续,请注意 然后我按照计数DP的思想,dp[i][j]表示长度为i的子串,最后一个字母为j 然后为了去重,每一次dp的时 ...

  3. ajax异步提交 有时会出现无bug的数据处理异常-----debug没有问题,正常运行却数据处理不正确,极少机会会出现正常的处理结果

    ajax  被使用时,常默认的就使用了异步处理. 当遇到后面的代码对同样的数据进行处理 或 要依赖前面ajax处理的结果时,就会导致数据处理结果不正确,未达到预期值. 且,debug时却能正常完成功能 ...

  4. python scipy库

    三.假定正态分布,求解1倍标准差和0.5倍标准差的概率? 二.求解多元线性或非线性方程组解 一.求解3元一次方程 1.学习资料  https://github.com/lijin-THU/notes- ...

  5. 使用DOM4J生成XML文档

    package xml; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; imp ...

  6. logrotate+crond日志切割、轮询

    logrotate 在工作中经常会有需求去查看日志,无论是通过应用或者系统error日志去查找问题或者通过nginx的访问日志统计站点日均PV.UV.所以体现了日志的重要性,但是通常当业务越来越大的时 ...

  7. poj_3461 KMP算法解析

    A - Oulipo Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit S ...

  8. 如何把控好Essay写作结构

    留学生在国内写过作文,但是对于essay写作到底了解多少呢?大家觉得essay写作太难是语言问题,但是大家要明白,老师对于内容的考察远重于对语言的考察.同学们的essay写作如果能做到言之有理,自圆其 ...

  9. python可移植支持代码;用format.节省打印输出参数代码;math模块;

    1.多平台移植代码: #!/usr/bin/env python3 这一行比较特殊,称为 shebang 行,在 Python 脚本中,你应该一直将它作为第一行. 请注意行中的第一个字符是井号(#). ...

  10. C++ 一般模板友元关系

    //一般模板友元关系 #include "stdafx.h" #include <iostream> using namespace std; template< ...