c++-请问getchar()到底是怎么用,能不能举个例子

问题描述

请问getchar()到底是怎么用,能不能举个例子

刚刚做到一道题:
输入有多行数据,每行有若干整数,这些整数数以空格分割,请分别求出每行整数的和。
输出的每行对应输入的每行,每行一个数字,即为输入的一行整数之和。
提示用getchar。
如:input:100 100 4
34 34
output:204
68

可是这玩意怎么用,网上写的那些,额,文字描述看得懂,实际操作并不会写。
比如这道题应该怎样写?
是否用到while循环?用了之后,发现始终只能用getchar获得第一个数字,怎么让它往后读取,这个循环怎么写?
还有。获取到换行的转义符之后,怎么让它继续获取第二行的内容?
麻烦用C++语言说明一下。

解决方案

#include <stdio.h>
int main(void)
{
int c;
/* Note that getchar reads from stdin and
is line buffered; this means it will
not return until you press ENTER. */
while ((c = getchar()) != 'n')
printf("%c", c);
return 0;
}

就是当你输入的字符不是回车的时候,就会打印出这个字符,如果你输入的是回车,那么就会退出while循环,其实就是从标准的输入流中读取一个字符的意思。

解决方案二:

getchar用法: http://baike.baidu.com/link?url=XWyrboL4Ox3SwmervYM7Y6X_OgmDWMU7ntA504zsEn2gqnp-Orhs54gyiwLuUDSkwBdvPMzD43YP_vaYRm492_

 #include<stdio.h>

int main(void)
{
    int n,sum;

    while(1)
    {
        sum=0;
        do
        {
            scanf("%d",&n);
            sum+=n;
        }while(getchar()!='n');
        printf("%dn",sum);
    }

    return 0;
}

解决方案三:

#include
#include
#include
#include
#include
using namespace std;

void main()
{
while( true )
{
vector< char > arrayContainer;
char c = 0;
while( ( c = getchar() ) != 'n' )
{
arrayContainer.push_back( c );
}
int number = 0;
string strNumber = "";
stringstream sstream;
unsigned int uIndex = 0;
while( uIndex < arrayContainer.size() )
{
string strTmp = "";
if( arrayContainer.at( uIndex ) == ' ' )
{
arrayContainer.at( uIndex ) = ',';
}
sstream << arrayContainer.at( uIndex );
sstream >> strTmp;
sstream.clear();
strNumber += strTmp;
uIndex++;
}
vector< int > sumContainer;
unsigned int uStrIndex = 0;
unsigned int uStartIndex = 0;
while( true )
{
unsigned int uIndexTmp = 0;
while( strNumber.substr( uStrIndex, 1 ) != "," && uStrIndex < strNumber.size() )
{
uIndexTmp++;
uStrIndex++;
}
int iNumberTmp = 0;
sstream << strNumber.substr( uStartIndex, uIndexTmp );
sstream >> iNumberTmp;
sstream.clear();
sumContainer.push_back( iNumberTmp );
uStrIndex++;
uStartIndex = uStrIndex;
if( uStrIndex >= strNumber.size() )
{
break;
}
}
int iSum = 0;
while( !sumContainer.empty() )
{
iSum += sumContainer.back();
sumContainer.pop_back();
}
cout << iSum <<endl;
}
}

搞定,如输入:100 12 10, 则输出:122, 这是个循环,所以输出后你如果还想输入其他的数据就按之前的格式继续输入。代码不易,望采纳。

解决方案四:

其实可以用getline();

getline(cin,a);//读入到字符数组a中

时间: 2024-11-04 12:06:08

c++-请问getchar()到底是怎么用,能不能举个例子的相关文章

getchar 要输入几次-getchar()到底要输入几遍才能使运行框停在那里不消失?

问题描述 getchar()到底要输入几遍才能使运行框停在那里不消失? 我相信所有程序员都要看自己遍的程序并且验证输入后的结果是否符合题意吧. 解决方案 对于C语言,在你正常的代码结束前写一个getchar()就可以.

图片-请问: 用java代码创建excel表格模板,例子如下怎么创建?

问题描述 请问: 用java代码创建excel表格模板,例子如下怎么创建? 解决方案 用poi类,先做好模板,用poi填写 解决方案二: package com.paic.gcc.service.offwork.util; import java.io.OutputStream; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Li

异步并行批处理框架设计的一些思考(转)

随着互联网信息技术日新月异的发展,一个海量数据爆炸的时代已经到来.如何有效地处理.分析这些海量的数据资源,成为各大技术厂商争在激烈的竞争中脱颖而出的一个利器.可以说,如果不能很好的快速处理分析这些海量的数据资源,将很快被市场无情地所淘汰.当然,处理分析这些海量数据目前可以借鉴的方案有很多:首先,在分布式计算方面有Hadoop里面的MapReduce并行计算框架,它主要针对的是离线的数据挖掘分析.此外还有针对实时在线流式数据处理方面的,同样也是分布式的计算框架Storm,也能很好的满足数据实时性分

能解读输入信息的智能计算器: Soulver

计算器可以说是人们生活中不可或缺的东西,虽然现在很多电脑手机的功能能够代替计算器,但对于习惯使用计算器的人来数,计算器仍然是进行计算的首选. 近日,据<移动新发现>报道,Acqualia Software推出的Soulver是一款面向iOS设备的计算器应用,它的与众不同之处在于不但能进行数字计算,还能解读用户输入的文字信息,可谓相当智能化. Soulver到底有多聪明呢?举个例子,如果用户输入"原价269.95美元的外套让利40%",它能直接得出"161.97美元

《最终幻想14》beta版透露女角色罩杯可调整

7月8日消息,预定于2010年9月30日在PC平台正式发售的<最终幻想14>现在正在进行β版测试.PS3版要等到2011年3月上旬发售.今天为大家带来了<最终幻想14>β版的最新情报,其中包括战斗的流程和新建人物的区别.除了种族面貌外,自建女性玩家的胸部会根据选择体型的不同而不一样,绝对能让你完成心目中的女神. FAMI通近日发表了一些来自<最终幻想14>战斗系统设计者冈田敦对改良后的战斗系统所作的评述.让我们来看看他都说了些什么. 位置和方向在战斗中所产生的影响 当同

困惑多年的问题:关于实体关系映射

问题描述 在实体映射时请问应该怎么处理实体之前的关系.举个例子,实体A引用实体B,实体B又与实体C为一对多(或多对多)关系,如下:classEntityA{publicintEntityBId{get;set;}publicEntityBEntityB{get;set;}}classEntityB{publicList<EntityC>EntityCItems{get;set;}}classEntityC{}数据访问类classEntityADAL{EntityAGetByPK(intEnti

李斌刘二海详解易车登陆纽交所

易车CEO兼创始人李斌.联想投资董事总经理刘二海近日做客新浪视频直播间,详解易车网登陆纽交所.以下为访谈实录: 主持人权静:各位新浪 网友大家好,欢迎您来到新浪财经视频直播间,我是主持人权静.今天要跟大家聊聊易车的上市和2010年集中在海外上市的创业公司上市潮,这背后有什么样的玄机.介绍一下两位做客演播室的嘉宾,这位是易车CEO兼创始人李斌李总,欢迎你. 李斌:各位网友大家好. 主持人权静:易总旁边这位是我们新浪公司的老朋友了,联想投资董事总经理刘二海先生. 刘二海:各位网友大家好. 主持人权静

getchar,scanf以及缓冲区

getchar()是stdio.h中的库函数,它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了. getch()和getche()是conio.h中的库函数,它的作用是从键盘接收字符.getchar带有显示.与前面两个函数的区别在于: getchar()函数等待输入直到按回车才结束(前提是缓冲区没有数据),回车前的所有输入字符都会逐个显示在屏幕上.但只有第一个字符作为函数的返回值.#include<stdio.h>#include<co

关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加?

问题描述 关于在JavaScript中使用EL表达式的问题,到底用不用加单引号或者双引号或者不加? 之前我自己编辑百度地图api时候,EL表达式是直接写的,但是并不能使用. 当时我在csdn上找到了如下这篇文章,说是要加引号.http://blog.csdn.net/xuechongyang/article/details/8629473然后就成功了. 比如下代码的最后一句. <script type=""text/javascript""> // 百度