`
zengsai
  • 浏览: 27401 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

C++ 控制台无法输入字符串

阅读更多
<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>

今天抱着试试的心态参加学校“ACM”预先赛,想着要用前几天刚学的C++试试,没想到却让一个小问题把我给卡住了,三道题只做出了一道,其它两道不是算法不知道,而是编程语言不熟悉导致的,觉得好可惜!

先看今天的代码,我要先从控制台输入一个整数n,再输入n个字符串。

输出如下:

Input num:3

Input st:

press a key to continue...

问题:程序运行很奇怪,在输入一个整数之后就无法输入字符串了。

解决方案:是 cin 的问题。修正后的代码如下:

需要用 cin.ignore() 清除残余物质。

小知识:

Cin.ignore()方法cin.ignore( 5, 'c' ) 的是从输入流(cin)中提取字符,提取的字符被忽略(ignore),不被使用。每抛弃一个字符,它都要计数和比较字符:如果计数值达到5或者被抛弃的字符是'c',则cin.ignore() 函数执行终止;否则,它继续等待。 它的一个常用功能就是用来清除以回车结束的输入缓冲区的内容,消除上一次输入对下一次输入的影响。比如可以这么用:cin.ignore( 1024, '\n' );,通常把第一个参数设置得足够大,这样实际上总是只有第二个参数 '\n' 起作用,所以这一句就是把回车(包括回车)之前的所以字符从输入缓冲(流)中清除出去。

更多关于 cin 的详细信息:http://hi.baidu.com/ttvid/blog/item/d38dd85821890281800a1822.html

分享到:
评论

相关推荐

    控制台读取连续字符串的时候以单独字符存入数组(C++代码)

    控制台读取连续字符串的时候以单独字符存入数组,用OJ提交的时候,我发现有些题目输入格式是连续字符串,但我想把它每个字符单独放到数组每个地址里

    c++输入字符串练习程序

    void main() { char ch,c[10],*p=NULL,*p_d; int l=1; cout,press Enter to end:\n"; do { cin.get(c,10); l+=strlen(c); p_d=new char[l]; if(p_d==NULL) { cout; return;...

    C++实现从输入中读取字符串

    主要介绍了C++实现从输入中读取字符串的实现思路和具体代码,非常的简单实用,有需要的小伙伴可以参考下

    输入一个字符串,将输出该字符串最长对称子串及其长度

    输入一个字符串,将输出该字符串最长对称子串及其长度,很精巧的算法

    c++实现的控制台计算器.rar

    我的课程设计1,c++语言开发一个计算器,控制台输入字符串表达式计算出结果,可以实现四则运算和sin,cos tan 混合运算显示结果。对输入表达式解析数字和符号(有负号判断),将表达式构建成树,进行计算

    一些C++ 专用的字符串处理函数集

    一些C++ 专用的字符串处理函数集,主要包括以下函数:  包括:  IsNumeric——检查串是否为数字串  Upcase——变成大写串  Lowercase——变成小写串  Trim——截掉串尾的空格  RTrim——截掉串开始处的...

    MFC中使用控制台输入输出

    在MFC中使用控制台输入输出,可以在MFC程序中,打开控制台界面,方便的通过标准的C++输入输出,方便了程序的调试;

    C_C++控制台界面编程 V3

    C/C++控制台界面编程(V 3) 1 目录 - 1 - 第一部分 控制台界面编程预备知识 1 1) Visual Studio 2005中控制台程序的类型 1 2) 转义字符及格式化输入、输出 1 a) 制表符\t 2 b) 回退字符\b 4 c) ASCII码表 6 d) 以%...

    C++控制台计算器(能识别括号)

    能进行加减乘除运算,并且能识别并列的多个括号以及包含括号等

    C++控制台实现文本编辑器

    使用C++模拟文本编辑器操作,练习字符串操作和字符串匹配算法等,实现查找、替换、删除、复制、粘贴、统计字数、读写磁盘等功能,适合初学数据结构的同学

    mac/linux C++ 控制台工具

    colorname()表示颜色的字符串名称,参数为颜色宏 color()返回值为颜色宏,参数为颜色字符串 gotoxy()让光标移到(x,y)的位置,x和y分别从1开始 goup(),godown(),goleft(),goright()让光标上下左右移动,参数为移动...

    c++ 控制台 实现大数运算, 任意位整数运算

    (2) 实现const char *单参数构造函数,从十进制数字字符串构造,不允许隐式转换; (3) 实现拷贝构造函数和赋值操作符; (4) 实现整数类之间的加、减、乘、除操作符及相应复合赋值操作符; (5) 实现==、!=、&gt;...

    001_CMake_1.zip

    【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* ) : https://hanshuliang.blog.csdn.net/article/details/99336346 【C++ 语言】命名空间 ( namespace | ...

    长ASCII码转字符串转换器

    网上有许多ASCII码转字符串的转换器,但一般都只能实现一个字符对应的ASCII码转换成一个字符,我设计的这个C++小程序能够实现2进制、10进制、16进制长达1000位数字的ASCII码转换成对应的字符,需要通过控制台运行。...

    VS2005控制台测试md5编码类程序通过

    在VS2005下测试通过,可以直接对CString字符串进行md5编码也可以对指定文件进行md5编码;C++源码,md5类很棒

    RC4加密算法C++实现

    C++实现RC4加密算法,以2进制形式输出密钥流和密文到控制台并将结果记录至.txt文件。 用到KSA PRGA算法,最后用异或进行加密/解密。

    一个可重用的VC++字符串处理函数集 IsNumeric——检查串是否为数字串 Upcase——变成大写串 right——从右到左截掉字符 Trim——截掉串尾的空格 空格 mid——截掉从某个起始位置到右边位置的字符

    一个VC++可重用的字符串处理函数集,... 压缩包中包含StringFunctins.h和StringFunctins.cpp是字符串处理函数的头文件和实现文件,main.cpp和main.h是一个控制台应用程序的头和实现,示范字符串处理函数的使用方法。

    如何在c++中实现字符串分割函数split详解

    在学习c++中string相关基本用法的时候,发现了sstream的istringstream[1]可以将字符串类似于控制台的方式进行输入,而实质上这个行为等同于利用空格将一个字符串进行了分割,于是考虑到可以利用这个特性来实现c++...

    Unreal的控制台命令参数合集

    Exec的命令是基于字符串的命令,您可以在游戏或编辑器中运行。他们也被称为控制台命令 ,因为它们通常在一个控制台窗口中运行。 要在游戏中执行命令,或?,弹出控制台,键入命令,然后按Enter。这些命令不区分大小写...

    控制台四则运算计算器

    将四则运算算式从字符串转换为可以进行计算的形式。实现该功能的函数简单有效,是学习递归调用的好例子。算法是从某本编程语言书上的习题答案上看的,自己用c++语言实现。

Global site tag (gtag.js) - Google Analytics