21xrx.com
2024-12-22 21:50:23 Sunday
登录
文章检索 我的文章 写文章
C++如何读取一行整数
2023-07-06 21:51:41 深夜i     --     --
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++中读取一行整数。

  
  

评论区

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