21xrx.com
2025-04-11 00:33:48 Friday
文章检索 我的文章 写文章
C++如何读取一行整数
2023-07-06 21:51:41 深夜i     14     0
C++ 读取 一行 整数

C++作为一门高级编程语言,具有非常强大的数据处理能力。在开发过程中,我们经常需要读取一行整数。但是C++的输入操作与其他编程语言不同,需要使用特定的代码来处理。

首先需要包含头文件iostream,然后声明一个整型数组,用来存储读取到的整数。接下来,可以使用cin.getline()函数读取整行字符串,将其存储在一个字符数组中。然后,利用while循环和sscanf()函数,将读取到的整行字符串按照空格进行分割,以便将每个整数存入整型数组中。

以下是示例代码:

#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int main()
{
  char buf[1024] = {0};
  int num[1024] = {0};
  int i = 0;
  cin.getline(buf, 1024);
  const char* ptr = buf;
  while(*ptr)
  {
    while(*ptr && !isdigit(*ptr)) ptr++;
    if(*ptr) num[i++] = atoi(ptr);
    while(*ptr && isdigit(*ptr)) ptr++;
  }
  for(int j=0; j<i; j++)
  {
    cout << num[j] << " ";
  }
  cout << endl;
  return 0;
}

在上述代码中,char buf[1024]定义了一个字符数组,用来存储读取到的一行字符串,int num[1024]定义了一个整型数组,用来存储读取到的整数。变量i用来记录读取到的整数个数。

cin.getline(buf, 1024)读取输入的字符串,存储在buf中。

读取到的字符串需要使用const char* ptr来进行分割,以便将每个整数存入整型数组中。其中,while(*ptr && !isdigit(*ptr)) ptr++用来移动指针,跳过非数字字符;if(*ptr) num[i++] = atoi(ptr)用来将数字字符转换成整数,并存储到整型数组num中;while(*ptr && isdigit(*ptr)) ptr++用来移动指针,跳过数字字符。

最后,使用for循环输出整型数组中存储的每个整数。

总之,以上这些操作可以实现在C++中读取一行整数。

  
  

评论区

请求出错了