21xrx.com
2025-04-12 12:43:10 Saturday
文章检索 我的文章 写文章
C++如何实现不定行输入?
2023-07-09 22:56:12 深夜i     43     0
C++ 不定行输入 cin ignore() while循环 EOF

在使用C++编程时,我们经常需要通过用户输入获取数据。但是,有时候我们不能确定用户输入的数据的行数,这就需要实现不定行输入。这种情况通常发生在需要输入若干行字符串时,我们不知道具体有多少行,该如何处理呢?

C++提供了许多处理控制台输入输出的函数,其中比较常用的是cin和getline。cin是从标准输入流提取输入并存储在变量中,该函数在遇到空格、制表符和换行符时会停止输入。而getline是从标准输入流中读取一行字符串,并存储在变量中。getline函数在读取到换行符时结束读取,即可以实现不定行输入。

下面是使用getline函数实现不定行输入的示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
  string s, result;
  while (getline(cin, s))
  {
    result += s + "\n"; // 将读取的数据拼接起来,以"\n"作为不同行的分隔
  }
  cout << "输入的字符串为:\n" << result << endl;
  return 0;
}

在这个示例中,我们使用了getline函数在while循环中持续读取输入,将读取的每一行字符串都放入变量result中,使用"\n"作为不同行的分隔符。当用户输入结束时,我们输出result中存储的所有字符串,实现了不定行输入。

需要注意的是,当使用getline函数读取输入时,如果输入流中有EOF(End of File)标记,getline函数将返回false,此时循环结束。因此,在实现不定行输入时,我们还可以使用Ctrl+Z(Windows系统)或Ctrl+D(Linux和Mac系统)来输入EOF标记,让程序自动结束输入并输出结果。

总的来说,C++可以通过getline函数快速实现不定行输入。不定行输入的灵活性让程序适用性更强,在需要处理无规律输入数据时,这个技巧能够有效提高程序的运行效率。

  
  

评论区