C++中getline被跳过

#include "stdafx.h"
#include"iostream"
#include"math.h"
#include"stdio.h"
#include"cstdlib"
#include"string"
#include"cstring"
using namespace std;
#define Max 20
struct player
{
	string name;
	char sex;
	int high;
};

int main(void)
{
	struct player bit[3];
	int i;
	cout << "press enter to start:";
	for (i = 0; i<3; i++)
	{
		cin.get();

		cout << "************player " << i << "***************" << endl;
		cout << "now input player " << i << "‘s  name:";

		getline(cin, bit[i].name);
		cout << "now input player " << i << "‘s  sex:";
		cin >> bit[i].sex;
		cout << "now input player " << i << "‘s  high:";
		cin >> bit[i].high;

	}
	cout << "##################################################" << endl;
	for (i = 0; i<3; i++)
	{
		cout << "player " << i << "‘s name is" << bit[i].name << "and his sex is" << bit[i].sex << "and the high is" << bit[i].high << endl;
	}
}

  上述代码第一个循环里,i=0执行正常,i=1的时候就会跳过输入名字这一项,直接到性别那里,如果i初值为1,则2的时候也跳过。

百度得知是cin和getline区别的问题。

在你写getline()函数之前,一定有使用过了回车了吧不论你输入的是字符,数字或是回车,空格符,getline()函数都接收而cin>>这种输入方式却是忽略回车的,如果你在getline()之前cin的一个数,回车被cin忽略了,却被getline函数接收了,感觉就是这条语句被跳过了 所以解决的办法是在getline函数之前再使用getline一次,将输入流里的回车符接收掉,后面就能正常输入了

百度知道的答案http://zhidao.baidu.com/link?url=-67TNObP8QxnE7tROIXviIDcS1SPWA7t5GzBcLV5yxu8sRfVS8W_H-0VR-HPW-ACbPAalWdFTfBGk3B5fnYqrq
时间: 2024-08-17 22:50:40

C++中getline被跳过的相关文章

ngRoute+ngAnimate与JQM中的页面跳转的区别

1.ngRoute+ngAnimate与jQM中的页面跳转有何异同? 相同点: (1)完整的HTML只需要一个 (2)使用异步AJAX请求获取下一个页面 (3)可以实现转场动画 不同点: (1)ngRoute需要配置路由字典:jQM没有,更加灵活 (2)ngRoute访问路由地址的格式——特殊格式的hash http://xxx/index.html#/main jQM访问页面地址——普通的URL http://xxx/tpl/main.html (3)ngRoute访问的路由页面可以使用F5刷

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题 问题原因 针对storyboard制作页面和手写页面,需要使用两种不同方法进行页面跳转. 解决办法 针对手写页面及storyboard制作页面,使用代码进行页面跳转的两种方法. 对于使用storyboard制作的页面 var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instantiateViewControllerWithIde

iframe中的各种跳转方法

iframe中的各种跳转方法(转) 一.背景A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下. 二.JS跳转window.location.href.location.href 本页面跳转,D页面跳转parent.location.href 上一层页面跳转,C页面跳转top.location.href 最外层页面跳转,A页面跳转 三.链接或者formD页面中有form < form>: form提交后D页面跳转<fo

可以放在html代码中的自动跳转代码

可以放在html代码中的自动跳转代码 有3种方法可以实现html的页面跳转,1,refresh   2,onload事件中加入代码  3,js实现 1.<html><body><meta http-equiv="refresh" content="0;url=http://www.baidu.cn"></body></html> 2.<html><head><meta http

php开发中的页面跳转方法总结

PHP页面跳转实现的功能就是将网站中一个网页跳转到另一个网页中.对于刚刚学习PHP语言的朋友来说,是必须要掌握的基础方法. 页面跳转可能是由于用户单击链接.按钮等触发的,也可能是系统自动产生的.页面自动跳转在WEB开发中经常用到,而且根据需求可以采用不同的跳转方式,比如提示操作信息后延时跳转等, 本文总结了WEB开发中常见的几种页面跳转方法. PHP header()函数跳转 PHP的header()函数非常强大,其中在页面url跳转方面也调用简单,使用header()直接跳转到指定url页面,

asp.net 中的错误跳转 customerrors 对html文件不起作用

在配置web.config时发现customerrors对aspx文件是起作用的,我想通过customerrors来判断是否有html文件时,却不起作用? 这是为什么,如果要起作用.net里该如何操作? 之所以aspx有用,而html没用是因为iis里的配置里设定了*.aspx,*.config等文件由aspnet_isapi.dll来处理而html默认是不处理, 直接发送给客户端如果你希望html也由aspnet_isapi.dll处理,可以去设置但是这样,html的响应速度也会变慢,因为每个

JS funtion()中URL不跳转后台action问题

JS funtion()中URL不跳转后台action问题 今天遇到一个百思不得其解的问题,到现在解决了,但是仍然不知道所以然(估计是因为域名不一致导致的),记录一下 $.get(actionUrl, {"parentId":parentId}, function(objResult){ $("#childType").find("option").remove(); $("#childType").append('<o

servlet中实现页面跳转return “r:”和return “f:

servlet中实现页面跳转return “r:”和return “f:”的区别和作用 2015-07-28 14:22741830480 | 浏览 48 次 Pascal 2015-07-28 14:26 #知道行家专业创造价值,火热招募中!# 提问者采纳 热心网友 r是redirect重定向,参数会丢失,url全是跳转后的url.f是forward服务器内部完成转发(参数仍在request里面),url不会变的.

网站开发中web页面跳转几种方式详解

在做web开发中,页面跳转的方式有很多种,然而有些时候这些跳转如何用到恰到好处却很容易被忽视. 客户端触发跳转有如下几种 使用meta元信息 <!--如下表示5秒后跳转到url指定的链接,推荐使用这种方式--> <meta http-equiv="refresh" content="5;url=http://my.oschina.net/ososchina/blog"> 2.使用javascript中的window.location对象 &l