`
zengsai
  • 浏览: 28416 次
  • 性别: 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++编程中,从输入中读取字符串是常见的任务,尤其在处理用户输入或文件数据时。本文将深入探讨两种方法,一种是读取单个由空格分隔的词,另一种是读取整行文本。 首先,我们来看如何使用`cin`来读取一个以空格...

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

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

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

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

    C++ 字符串匹配

    C++ 字符串匹配 C++ 的字符串匹配是计算机科学中非常重要的一部分,它在许多领域都有广泛的应用,如数据压缩、模式识别、文本编辑等。在这一篇文章中,我们将详细介绍 C++ 中的字符串匹配算法,主要包括 Brute ...

    实例020 - 从控制台接收输入字符

    3. **字符与字符串**:在处理用户输入时,通常需要将字符转换为字符串或者其他数据类型,以便进行进一步的计算或处理。这可能涉及到类型转换和格式化。 4. **循环与条件判断**:为了持续接收用户的输入,我们可能会...

    c++控制台的智能桌面计算器

    根据给定的信息,本文将对“C++控制台的智能桌面计算器”进行详细的解析与介绍。此计算器具备处理复杂表达式的能力,用户可以输入类似数学公式的形式,如:`40-(5.2*2.1-10)-5/i-25/5+9=`,按下回车键后即可得到...

    C++控制台LED打印数字

    在C++编程中,LED打印数字是指将阿拉伯数字在控制台上以类似LED显示屏幕的方式输出。LED显示屏通常用七段或八段LED数码管来表示每个数字,因此在...完成以上步骤后,你就可以在C++控制台上看到类似LED屏显示的数字了。

    C++编写字符串的排序举例

    此示例代码涵盖了字符串输入、比较以及排序等关键步骤,并使用了基本的C++语法和标准库函数。 #### 二、代码解析 ##### 1. 包含头文件 ```cpp #include&lt;conio.h&gt; #include&lt;stdio.h&gt; #include #include&lt;string&gt; ...

    C++扩展String类,可输出彩色字符串

    在C++编程中,标准库提供了`std::string`类来处理字符串,但它在某些情况下可能无法满足所有需求。为了增强其功能,开发者有时会选择扩展这个基础类,以实现更高级的操作,比如在控制台上输出彩色字符串。在给定的...

    指法练习(C++控制台程序源码)

    此外,可能还会用到字符串(string)类来处理文本,以及时间戳(chrono库)来计算用户完成输入所花费的时间。 在实际的项目中,源码可能包含多个文件,比如一个主程序文件(如main.cpp)、一个包含函数定义的头文件...

    21点游戏_C++控制台程序版

    此外,你可能还需要创建友好的用户界面,通过字符串格式化和换行来提高用户体验。 在实现游戏逻辑时,你可能会遇到递归或循环的使用,因为游戏可能需要多次迭代直到某一方达到游戏结束的条件。递归在解决此类问题时...

    QT控制台consoleQTextStream类获取键盘输入响应

    这个函数会等待用户按下回车键,然后返回包括回车在内的整个字符串。注意,由于`QTextStream`默认会处理换行符,所以无需额外处理。 为了能够接收键盘输入并作出响应,我们可以使用事件循环。QT的`QCoreApplication...

    c++控制台连接sql数据库.doc

    ### C++控制台程序连接SQL数据库知识点解析 #### 一、引言 本文将详细介绍如何在C++控制台应用程序中连接并操作SQL数据库。通过分析提供的示例代码,我们将逐步了解整个过程,包括连接数据库、执行查询、添加、更新...

    C++控制台局域网聊天室

    - 字符串编码:由于网络传输的数据是二进制形式,所以字符串需要转化为字节流,常见的编码方式有ASCII、UTF-8等。 - 数据打包:为了正确传输,数据通常会被封装成特定格式(如TCP的报文段)再发送。 4. **错误...

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

    ### C++控制台计算器 #### 1. 算术运算的优先级处理 代码中首先处理了乘法和除法的计算,这是因为根据数学中的运算法则,乘法和除法的优先级高于加法和减法。在`//*/`注释部分,通过循环遍历符号数组(`symbol`)...

    MFC中使用控制台输入输出

    现在,你就可以像处理普通C++控制台程序一样处理MFC程序的输入输出了。例如: ```cpp int main() { //...其他MFC初始化代码... // 控制台输入输出示例 std::cout 请输入一个数字:"; int num; std::cin &gt;&gt; ...

    C++控制台学生信息管理系统(带模糊搜索功能)

    在本项目中,我们讨论的是一个使用C++编程语言实现的控制台学生信息管理系统,它具备基本的学生数据管理功能,并且具有模糊搜索功能。这样的系统对于教学、小型机构或者个人学习C++编程以及数据管理非常有帮助。接...

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

    在文本编辑器中,我们可能需要创建一个新的字符串来存储用户输入的内容,或者对现有文本进行修改,这就需要用到这些方法。 接下来,我们讨论字符串匹配算法。在实现查找功能时,我们需要快速定位特定的子串。常见的...

Global site tag (gtag.js) - Google Analytics