编写一个程序,要求用户输入一串整数和任意数目的空格,这些整数必须位于同一行中,但允许出现在该行的任何位置。当用户按下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. C#文本操作

    1.使用FileStream读写文件 文件头: 复制代码代码如下: using System;using System.Collections.Generic;using System.Text;us ...

  2. pycharm 设置项目的编译器

    设置编译器(interpreter) File---Setting--在搜索框输入(interpreter)

  3. Docker 镜像(image)

    版权所有,未经许可,禁止转载 章节 Docker 介绍 Docker 和虚拟机的区别 Docker 安装 Docker Hub Docker 镜像(image) Docker 容器(container ...

  4. python连接 ssh

    import paramiko # private = paramiko.RSAKey.from_private_key() 秘钥 trans = paramiko.Transport((" ...

  5. 高级js 变量提升以及自由变量

    Q首先一道题 if(false){ var a = 1; } console.log(a); //undefined //我以为输出ReferenceError: aa is not defined ...

  6. mybatis基础CURD的学习

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "- ...

  7. UVA - 12545 Bits Equalizer (比特变换器)(贪心)

    题意:输入两个等长(长度不超过100)的串S和T,其中S包含字符0,1,?,但T只包含0和1,你的任务是用尽量少的步数把S变成T.有以下3种操作: 1.把S中的0变成1. 2.把S中的“?”变成0或1 ...

  8. 微信小程序拒绝授权后提示信息以及重新授权

    wx.authorize({ scope: 'scope.writePhotosAlbum', success() { // 授权成功 wx.saveImageToPhotosAlbum({ file ...

  9. 使用Linux系统,是一种什么体验?

    导读 同事,从事嵌入式软件开发多年,主要开发环境用的就是linux,最疯狂的一段时间直接把系统装成linux系统,然后在linux下面虚拟一个windows操作系统,主要有些事情必须在windows才 ...

  10. HDU 5461:Largest Point

    Largest Point Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) To ...