21xrx.com
2024-09-19 09:52:30 Thursday
登录
文章检索 我的文章 写文章
如何在C++中输入逗号间隔的数字
2023-07-05 07:30:23 深夜i     --     --
C++ 输入 逗号 数字 分隔符

在C++中,输入一串逗号分隔的数字可能会比较麻烦,但是有一些方法可以帮助我们处理这样的输入。

一种常见的方法是使用库函数`getchar()`来逐个读取输入字符,并根据逗号的位置来划分不同的数字。具体来说,我们可以使用一个`while`循环来读取每个字符,并使用一个`if`语句来判断是否遇到了逗号。当我们遇到了逗号时,我们可以将之前读取的数字存储到一个数组中,并将数组清空以便接收下一个数字。当最后一个数字输入完成后,我们也需要将其存储到数组中。以下是使用这种方法的示例代码:


#include <iostream>

using namespace std;

int main()

{

  int arr[10]; // 假设我们最多输入10个数字

  int i = 0, num = 0;

  char ch;

  cout << "请输入逗号分隔的数字:";

 

  while (ch != '\n') // 循环读取字符,直到读到换行符

  {

   ch = getchar();

   if (ch == ',')

   {

     arr[i++] = num; // 将之前读取的数字存储到数组中

     num = 0; // 清空num,准备读取下一个数字

   }

   else

   {

     num = num * 10 + (ch - '0'); // 将字符转换为数字,然后拼接成一个整数

   }

  }

  arr[i++] = num; // 获取最后一个数字

  cout << "获取到的数字依次为:";

  for (int j = 0; j < i; j++)

  {

   cout << arr[j] << " ";

  }

  cout << endl;

  return 0;

}

运行程序后,我们可以输入一串逗号分隔的数字,例如`1,2,3,4,5`,然后得到程序输出:


请输入逗号分隔的数字:1,2,3,4,5

获取到的数字依次为:1 2 3 4 5

另一种方法是使用字符串流`stringstream`,它可以将一个字符串解析成多个数据类型,包括整数、浮点数和bool值等。我们可以先将输入的一串数字存储到一个字符串中,然后使用`stringstream`来解析这个字符串,并将解析出来的数字依次存储到一个数组中。以下是使用这种方法的示例代码:


#include <iostream>

#include <sstream>

using namespace std;

int main()

{

  int arr[10]; // 假设我们最多输入10个数字

  string input;

  int i = 0;

 

  cout << "请输入逗号分隔的数字:";

  getline(cin, input);

  stringstream ss(input);

  while (ss.good() && i < 10)

  {

   string substr;

   getline(ss, substr, ',');

   arr[i++] = stoi(substr); // 将字符串转换为整数,并存储到数组中

  }

  cout << "获取到的数字依次为:";

  for (int j = 0; j < i; j++)

  {

   cout << arr[j] << " ";

  }

  cout << endl;

  return 0;

}

运行程序后,我们可以输入一串逗号分隔的数字,例如`1,2,3,4,5`,然后得到程序输出:


请输入逗号分隔的数字:1,2,3,4,5

获取到的数字依次为:1 2 3 4 5

无论哪种方法,都能够有效地处理逗号分隔的数字输入。我们可以根据自己的喜好选择使用哪种方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复