编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行的任何位置。当用户按下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. 对于python 3.x与python2.x中新型类的继承特性总结

    (1)一般性继承特性 """ 该文件对于python 3.x 及python 2.x的New-style 类的一般性继承特性进行了说明和测试. (1)实例的继承特性:搜寻 ...

  2. 51nod 1430:奇偶游戏 博弈

    1430 奇偶游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  关注 有n个城市,第i个城市有ai个人.Daene ...

  3. 线程与进程 queue模块

    queue模块的基本用法 https://www.cnblogs.com/chengd/articles/7778506.html 模块实现了3种类型的队列,区别在于队列中条目检索的顺序不同.在FIF ...

  4. pppd调试心得.md

    描述 pppd是用于驱动3g模块的一种方式,其本质是和运营商APN协商,建立连接 其与运营商之间使用ppp协议,而用户在应用层使用系统提供的socket即可,从而忽略底层使用的时何种接口的设备,避免因 ...

  5. Mac系统Snail SVN 精简版配置比较、合并工具:Beyond Compare及破解

    Mac系统 Beyond Compare及破解 前言 在上一篇文章:Mac系统的SVN客户端:Snail SVN 精简版 介绍了在mac系统中svn客户端使用的是snail svn,但是当我想要把本地 ...

  6. java类加载及new对象的过程

    /* SubClass sub = new SubClass(); 这句话到底做了什么事情呢? 1.javac编译.java源文件形成.class字节码文件; 2.new SubClass()对象时, ...

  7. 掌握这三点,轻松搞定Essay写作

    英文essay写作涉及的范围很广,任何文字形式的材料都涉及写作.所以,不单单是专业的文字工作者要在写作上下功夫,一般人在从小到大的学校教育里要应对的作文.读书报告.美国高中及大学里的论文.英文演讲以及 ...

  8. tomcat的8080,8009,8443,8005都是什么端口

    <Server port="8005" shutdown="SHUTDOWN"> 远程停服务端口<Connector port="8 ...

  9. 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring IoC容器BeanFactory和ApplicationContext

    IoC 是指在程序开发中,实例的创建不再由调用者管理,而是由 Spring 容器创建.Spring 容器会负责控制程序之间的关系,而不是由程序代码直接控制,因此,控制权由程序代码转移到了 Spring ...

  10. 吴裕雄--天生自然 PHP开发学习:类型比较

    <?php if(42 == "42") { echo '1.值相等'; } echo PHP_EOL; // 换行符 if(42 === "42") { ...