来自用户的输入字符串,但我不知道用户想输入的字符串长度

时间:2015-10-18 14:00:09

标签: c++

这可能是一个基本问题,但我无法在任何地方找到合适的答案......

Q)假设我声明了一个字符串a [10],我想从用户输入它,但我不知道用户想要输入的字符串的长度 我应用的是以下循环来获取输入:

#include<iostream>
using namespace std;
{
    int a[10],i;
    for(i=0;i<10;i++)
    {
        cin>>a[i];
    }
}

让用户希望只输入长度为5的字符串,但是使用上面的循环,编译器只会在字符串长度为10时进行迭代...

此外,我不允许向用户询问他想输入的数组的长度。

1 个答案:

答案 0 :(得分:0)

您有两种选择:

  1. 使用std::string并将字符串裁剪为最大尺寸(如果 必要的)输入后。
  2. 使用OS API一次读取一个字符,直到终止 收到字符。
  3. std::stringchar []的C ++输入函数将从输入流中读取字符,直到满足终止条件为止; 不考虑字符数量。使用标准的多字符流输入功能,没有限制数量的方法。因此,您需要一个动态数据结构来读取数据,然后根据需要裁剪到您想要的数量。

    您可以循环读取一个字符,直到输入终止字符或达到数量限制。除非您小心,否则标准字符输入函数可能会忽略空格或缓冲字符,直到收到终止字符。

    如果您想要更多或更精细地控制输入,请使用OS API读取循环中的字符。您可能必须回显字符到输出流。

相关问题