21xrx.com
2024-09-20 00:41:15 Friday
登录
文章检索 我的文章 写文章
C++如何处理多行输入
2023-07-06 05:52:02 深夜i     --     --
C++ 多行输入 处理

C++是广泛使用的编程语言之一,特别是在计算机科学和工程领域。在大多数情况下,程序需要从用户那里获取多行输入。在C++中,有几种方法可以处理多行输入。下面将介绍其中的几种方法。

1. 从标准输入流中读取多行输入

在C++中,可以使用标准输入流(std::cin)读取多行输入。以下代码演示了如何使用std::cin读取多行输入:


#include <iostream>

#include <string>

int main() {

 std::string line;

 while (std::getline(std::cin, line))

  // 处理每一行输入

 

 return 0;

}

上面的代码使用C++的std::getline函数,它从标准输入流(std::cin)中读取一行输入,并将其存储在一个字符串变量中。然后,使用while循环读取多行输入,直到EOF(文件结束)。

2. 使用stringstream处理多行输入

C++中的std::stringstream类提供了一种更加灵活的方式来处理多行输入。以下代码演示了如何使用std::stringstream处理多行输入:


#include <iostream>

#include <string>

#include <sstream>

int main() {

 std::string input = "1 2 3\n4 5 6\n7 8 9";

 std::stringstream ss(input);

 std::string line;

 while (std::getline(ss, line, '\n')) {

  std::stringstream line_ss(line);

  int num;

  while (line_ss >> num)

   // 处理每一个数字

  

 }

 return 0;

}

上面的代码使用C++的std::stringstream类,它将多行输入存储在一个字符串中,然后将其转换为一个std::stringstream对象。接下来使用while循环逐行读取输入,并使用另一个std::stringstream对象来处理每一行输入,并读取每个数字。

3. 使用getline和vector处理多行输入

如果输入数据是一个整数数组,可以使用std::vector来存储输入,并可以使用getline函数来进行输入。以下代码演示了如何使用getline和vector来处理多行输入:


#include <iostream>

#include <string>

#include <vector>

#include <sstream>

int main() {

 std::vector<int> nums;

 std::string line;

 while (std::getline(std::cin, line)) {

  std::stringstream line_ss(line);

  int num;

  while (line_ss >> num) {

   nums.push_back(num);

  }

 }

 for (auto num : nums)

  // 处理每一个数字

 

 return 0;

}

上面的代码使用getline函数逐行读取输入,并使用std::stringstream对象处理每一行输入,然后将每个数字存储在std::vector中。在for循环中,可以处理每个数字。

综上所述,C++中有多种方法可以处理多行输入。可以选择最适合你的输入类型和需求的方法来读取输入,并进行相应的处理。

  
  

评论区

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