小编Ian*_*004的帖子

如何读入用户输入的逗号分隔整数?

我正在编写一个程序,提示用户:

  1. 数组大小
  2. 要放入数组的值

第一部分很好,我创建了一个动态分配的数组(必需)并使其成为用户想要的大小。

我被困在下一部分。用户应输入一系列由逗号分隔的整数,例如:1,2,3,4,5

我如何接收这些整数并将它们放入我动态分配的数组中?我读到默认情况下 cin 接受以空格分隔的整数,我可以将其更改为逗号吗?

请以最简单的方式解释,我是编程初学者(对不起!)

编辑: TY 这么多答案。问题是我们还没有涵盖向量......有没有一种方法只使用我拥有的动态分配的数组?

到目前为止,我的函数看起来像这样。我在 main.js 中创建了一个默认数组。我计划将它传递给这个函数,创建新数组,填充它,并更新指针以指向新数组。

int *fill (int *&array, int *limit) {

cout << "What is the desired array size?: ";                                  
while ( !(cin >> *limit) || *limit < 0 ) {
    cout << "  Invalid entry. Please enter a positive integer: ";
    cin.clear();
    cin.ignore (1000, 10);
}

int *newarr;                                                                            
newarr = new int[*limit]
    //I'm stuck here
}
Run Code Online (Sandbox Code Playgroud)

c++ cin

6
推荐指数
2
解决办法
4万
查看次数

如何声明和初始化类中的字符串数组?

我试图在我的头文件中声明一组代表西装的字符串数组,并在我的实现文件中初始化它.我试过initializer_list在我的构造函数中尝试初始化它,但没有任何效果.我终于遇到了这个链接在C++中初始化const字符串的静态const数组,但是我不明白为什么这有效,而以前的方法没有.

为什么char在这里使用

static const char * const days[]
Run Code Online (Sandbox Code Playgroud)

而不是string?为什么要使用指针?

我很困惑为什么我也不能在我的头文件中声明和初始化数组.

c++ arrays

3
推荐指数
2
解决办法
1万
查看次数

如何在little endian中打印十六进制数,填充零,在python中没有'0x'?

我想写一个循环,以4B十六进制数字格式打印1到50000.但是,我需要十六进制数字采用小端格式,显示全部为零的零,并且在开头不显示"0x".

例:

数字50,000是十六进制的0xc350.

我要打印:50C30000

这是我到目前为止,我只是不知道如何添加零以使其为4B格式:

import struct
print hex( struct.unpack( '<H', struct.pack('>H', 50000) ) [0] ) [2:].upper()
#Output is 50C3
Run Code Online (Sandbox Code Playgroud)

〜谢谢

python format hex

2
推荐指数
1
解决办法
5265
查看次数

为什么将cin用于数字变量是"坏"的?

我现任教授陈述了他的教学大纲:

"永远不要使用cin >>直接读取数字变量,如int或double或float.读取字符串(C或C++)并使用atoi或atof转换为数字."

是否有一个原因?起初我认为这是为了避免失败标志,但如果你只是添加输入验证代码是不是很好"cin >> myInt"?

使用他的方法,如果他们输入"4a5"并且我做了atoi它不会仍然抛出错误?

谢谢〜

c++ cin

2
推荐指数
1
解决办法
249
查看次数

为什么通过引用传递修复了我的递归错误?

我刚刚开始学习递归,并且我有一个程序可以搜索5个int的向量作为值,并返回值的下标位置.我注意到,当我按值传递向量时,我得到一个不正确的下标位置,如72784658.

但是,当我通过引用传递向量时,不做其他更改,我得到了正确的答案.有人可以解释原因吗?下面是按值传递向量的代码,它产生错误的答案.

#include <vector>
#include <iostream>
using namespace std;

int search( vector<int>, int, int );

int main() 
{
    vector<int> myInts;
    for( int i = 0; i < 5; i++ )
        myInts.push_back( i );

    cout << "The number 2 is at subsript " << search( myInts, 2, 0 ) << endl;

    return 0; 
}

int search( vector<int> vec, int val, int index )
{
    if( index < vec.size() )
    {
        if( vec[index] == val )
            return index;
        else
            search( vec, val, …
Run Code Online (Sandbox Code Playgroud)

c++ recursion vector

1
推荐指数
1
解决办法
83
查看次数

标签 统计

c++ ×4

cin ×2

arrays ×1

format ×1

hex ×1

python ×1

recursion ×1

vector ×1