21xrx.com
2025-03-27 21:18:58 Thursday
文章检索 我的文章 写文章
如何在C++中输入逗号间隔的数字
2023-07-05 07:30:23 深夜i     86     0
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

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

  
  

评论区