21xrx.com
2024-06-03 05:44:19 Monday
登录
文章检索 我的文章 写文章
C++ 如何读取一行数字
2023-07-05 12:15:19 深夜i     --     --
C++ 读取 一行 数字

C++ 是一种经典的编程语言,广泛用于各种软件和应用程序的开发。当我们需要读取一行数字时,C++ 中有很多方法可以实现。下面将介绍两种常用的方法。

方法一:使用 getline() 函数

在 C++ 中,可以使用 getline() 函数读取一行输入(包括数字)。该函数的原型如下:


istream& getline (istream& is, string& str, char delim);

其中,is 是 istream 类型的对象,代表要从中读取输入的流;str 是一个字符串对象的引用,用于存储读取的内容;delim 是一个字符,用于表示读取一行输入时要遇到的结束标记字符。

如果我们要读取一行数字,可以使用 getline() 函数加上一个 stringstream 对象来实现。示例代码如下:


#include <iostream>

#include <string>

#include <sstream>

using namespace std;

int main() {

  string input;

  cout << "请输入一行数字:" << endl;

  getline(cin, input);

  

  stringstream ss(input);

  int num;

  while (ss >> num)

    cout << num << " ";

  

  return 0;

}

在上面的代码中,输入的数字可以用空格、逗号、分号等多种符号分隔。程序首先使用 getline() 函数读入一行字符串(包括数字),然后使用 stringstream 对象 ss 将字符串转换为流,并通过 while 循环逐个读取数字并输出。

方法二:使用 cin.getline() 函数

另一种读取一行数字的方法是使用 cin.getline() 函数。该函数的原型如下:


istream& getline (istream& is, char* s, streamsize n, char delim);

其中,is 和 delim 的含义与 getline() 函数相同。s 是一个指向字符缓冲区的指针,用于存储读取的内容;n 是一个整数,表示缓冲区 s 的最大长度。

在使用 cin.getline() 函数读取一行数字时,可以将缓冲区的最大长度设置为较大的数值,以确保能够容纳输入的数字。示例代码如下:


#include <iostream>

#include <cstring>

using namespace std;

int main() {

  char input[1000];

  cout <<"请输入一行数字:" << endl;;

  cin.getline(input, 1000);

  

  char* token = strtok(input, " ,;");

  while (token != NULL) {

    int num = atoi(token);

    cout << num << " ";

    token = strtok(NULL, " ,;");

  }

  return 0;

}

在上面的代码中,使用 cin.getline() 函数将输入的数字存储到字符缓冲区 input 中,然后使用 strtok() 函数按照指定分隔符将字符串分割成一个个数字,并通过 while 循环逐个读取并输出。

综上所述,C++ 有多种方法可以读取一行数字,每种方法都有自己的特点和适用场景。希望本文能够帮助大家了解并掌握这些方法。

  
  

评论区

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