c++连续输入未知个数的数字操作

看代码吧~

vector<int> v;
int num;
while (cin >> num)
{
v.push_back(num);
if (num == 0)
 break;
}

方式一:

以空格或者回车结束每次输入,以固定输入数字0结束输入(也可以更改为其他字符)

string test;
 getline(cin, test);
 int input_nums = 0;
 vector<int> indexes;
 indexes.push_back(0);
 for (int i = 0; i < test.size(); i++)
 {
 if (test[i] == ' ')
 {
 input_nums++;
 indexes.push_back(i);
 }
 }
 int *p = new int[input_nums+1];
 for (int i = 0; i <= input_nums; i++)
 {
 int start = indexes[i];
 int length = (i!=input_nums?indexes[i + 1] - indexes[i]:test.length()-        indexes[i]);

 p[i] = atoi(test.substr(start, length).c_str());
 }

方式二:

以空格结束每次输入,将输入当成字符串来处理,以空格分隔字符并转换成int。相对复杂一点。。。

补充知识:c++连续输入未知整数解决方法

最近帮师兄做笔试题,对于连续输入未知数目整数的时候,以前我一直用While(cin>>temp),但是这样做的话需要输入完之后在加上ctrl+z,才能结束输入,但是在做笔试的时候测试数据不可能这样做,导致会出现问题,后来终于找到一个方法解决这个问题,现在写下来防止以后遇到这个问题,也希望能帮助大家。

#include<iostream>
#include<vector>
using namespace std;
int main()
{
 vector<int> Input;
 int temp;
 while (cin>>temp)
 {
 Input.push_back(temp);
 if (getchar() == '\n')
 {
 break;
 }
 }
 system("pause");
 return 0;
}

以上这篇c++连续输入未知个数的数字操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • C++和python实现阿姆斯特朗数字查找实例代码

    1.题目解释 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数. 例如1^3 + 5^3 + 3^3 = 153. 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407 2.判断一个数是否为阿姆斯特朗数 1.先来一个简单的代码,判断一个数是否为阿姆斯特朗数: 来看看C++写的 #include <iostream> using namespace std; int main() { int n, r, su

  • C++通过循环实现猜数字小游戏

    C++猜数字小游戏-通过循环实现,供大家参考,具体内容如下 题目:/系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错提示玩家数字过大或过小,如果猜对恭喜玩家胜利,并且退出游戏.每局游戏只能猜5次 实现: 通过循环和if判断 源码: #include <iostream> #include<ctime> using namespace std; int main() { /*系统随机生成一个1到100之间的数字,玩家进行猜测,如果猜错, 提示玩家数字过大或过小,如果猜对恭

  • C++实例输入多行数字到数组

     C++输入多行数字到数组 前天做某公司笔试题的时候,其输入格式是多行数字,每行以空格为分隔符,以换行符号为结束输入到多个数组.在JAVA中有相应的函数直接将一行拆成数组,感觉在C++中这中输入方式还是挺奇怪的,今天想出一种解决方式. 思路: 每次读入一个字符,判断是不是EOF,如果是的话跳出循环: 不是EOF将字符放回缓冲区: 读入换行符,说明一行结束,处理数组: 读入字符,如果不是空格,存入一个临时的字符串: 如果是空格,字符串转换成整数并压入数组: 注意: 对于连续的空格输入要进行判断,否

  • C++实现对输入数字组进行排序

    本是一个再简单不了的功能,然后只是冒泡排序.可是我在交互输入数列的时候,只用空格隔开然后回车,如果不限定数的个数,用scanf并不能完成这个任务,他循环获取,到最后不能判断获取结束,而只能继续等待输入. 这个时候我自定义一个函数,获取缓存区中的数(空格分隔),如果输入结束就返回一个特定的值,这个函数是用getchar循环嵌套实现的.本人新手,只能弄出这方法.欢迎各位大神指导. maopao-complex.c //比较复杂的数组接收方法,然后从大到小排序.VC环境 #include <stdio

  • c++连续输入未知个数的数字操作

    看代码吧~ vector<int> v; int num; while (cin >> num) { v.push_back(num); if (num == 0) break; } 方式一: 以空格或者回车结束每次输入,以固定输入数字0结束输入(也可以更改为其他字符) string test; getline(cin, test); int input_nums = 0; vector<int> indexes; indexes.push_back(0); for (

  • Python 使用input同时输入多个数的操作

    我就废话不多说了,大家还是直接看代码吧~ n = input("1st enter:") print(n) print(type(n)) n = int(input("2nd enter:")) print(n) print(type(n)) n, m, c = input("3rd enter:") print(n, m, c) print(type(n)) n, m, c = eval(input("4th enter:"

  • SqlServer生成连续数字根据指定的数字操作

    需求是使用sqlserver根据指定的数字和表生成一串连续的数字,类似于oracle中ROWNUM的功能,具体实现如下: 一.Oracle使用ROWNUM实现方式 SELECT ROWNUM number_list FROM 表名 WHERE ROWNUM <= 10; 二.SqlServer实现上述功能的三种方式 1.使用MASTER-spt_values方式 SELECT number FROM MASTER..spt_values WHERE TYPE = 'P' AND number >

  • JavaScript数组的定义及数字操作技巧

    一.数组的介绍 数组中的元素类型可以是数字型.字符串型.布尔型等,甚至也可以是一个数组. 二.定义数组 1.通过数组的构造函数来定义数组: var arr=new Array(); var arr=new Array(size); var arr=new Array(element1,element2,...); 2.直接定义数组: var arr=["字符串",true,13]; ps: 和Object一样,此写法不会调用Array()构造函数. 三.数组元素 1.存取数组元素:通过

  • 检查输入的是否是数字使用keyCode配合onkeypress事件

    复制代码 代码如下: <script language = "javascript" type = "text/javascript"> function check(event){ //用户每按下一个键,就去判断是不是一个数 if(event.keyCode<48 || event.keyCode>57){ window.alert("你输入的不是数字!"); return false; } } </script&

  • C#实现输入10个数存入到数组中并求max和min及平均数的方法示例

    本文实例讲述了C#实现输入10个数存入到数组中并求max和min及平均数的方法.分享给大家供大家参考,具体如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int nu1, max,min,number;

  • Python实现的对一个数进行因式分解操作示例

    本文实例讲述了Python实现的对一个数进行因式分解操作.分享给大家供大家参考,具体如下: 在数学中,我们可能会对一个数进行因式分解,如何用Python来实现呢?以下是某位大佬写的算法,这里拿过来直接用就可以了. # 对一个数进行因式分解 def factorization(num): factor = [] while num > 1: for i in range(num - 1): k = i + 2 if num % k == 0: factor.append(k) num = int(

  • Java两种方法计算出阶乘尾部连续0的个数

    第一个方法是计算出阶乘然后计算字符串的0的个数. import java.util.Scanner; import java.math.BigDecimal; import java.text.DecimalFormat; public class jc{ public static void main(String args[]){ Scanner reader = new Scanner(System.in); DecimalFormat a = new DecimalFormat("#&q

  • Python如何一行输入多个数,并存入列表

    目录 如何一行输入多个数,并存入列表 方法一 方法二 用input()同时输入多个数 1.map( ) 2.split( ) 3.map(function,input(“以空格分开”).split()) 如何一行输入多个数,并存入列表 在python里,如果你仅使用input()的话是输入一行的内容并将该行的内容以字符串的形式存到变量中,但如果你想要在一行输入多个数字的话使用int(input())就没法实现. 注:使用python2版本时可能会报错 相关介绍:Python中列表元素转为数字的方

  • ASp.net 文本框(TextBox)计算,判断输入的是否是数字

    复制代码 代码如下: protected void txtQty_TextChanged(object sender, EventArgs e) { checkForm(); } //检验文本信息是否合法,如果合法则开始计算 protected void checkForm() { try { if (!IsNumberic(txtQty.Text) && txtQty.Text != "") { checkbool = false; Response.Write(&q

随机推荐