21xrx.com
2024-12-27 15:57:22 Friday
登录
文章检索 我的文章 写文章
C++多行输入字符串方法
2023-07-03 22:02:21 深夜i     --     --
C++ 多行输入 字符串 方法

在C++编程中,经常需要读取多行输入的字符串,例如从文件或用户输入中读取多行文本。这里介绍两种常用的读取多行输入的方法。

方法一:使用getline()函数

getline()函数可以读取一行字符串,并将其存储到一个string对象中。在遇到换行符(’\n’)或文件结束符(EOF)时,getline()函数会停止读取。因此,我们可以在循环中反复调用getline()函数,直到读取完所有的行。

下面是使用getline()函数读取多行输入的示例代码:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string line;

  while (getline(cin, line))

    // 处理每一行输入

    cout << line << endl;

  

  return 0;

}

在上面的示例代码中,我们使用std::getline()函数从标准输入读取多行输入,存储到一个名为line的字符串对象中。然后对每行输入进行处理,这里我们只简单地将其输出到标准输出。

值得注意的是,getline()函数会将读取到的换行符(’\n’)从输入流中删除,因此我们在处理每行输入时不需要手动删除换行符。

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

另一个读取多行输入的方法是使用cin.getline()函数。cin.getline()函数可以读取指定数量的字符或一行字符串,并将其存储到一个字符数组中。与getline()函数不同的是,cin.getline()函数会将换行符保留在输入流中,因此我们需要手动删除这些换行符。

下面是使用cin.getline()函数读取多行输入的示例代码:


#include <iostream>

using namespace std;

int main() {

  const int MAX_LENGTH = 1000;

  char line[MAX_LENGTH];

  while (cin.getline(line, MAX_LENGTH)) {

    // 处理每一行输入

    // 删除换行符

    int len = strlen(line);

    if (len > 0 && line[len - 1] == '\n') {

      line[len - 1] = '\0';

    }

    cout << line << endl;

  }

  return 0;

}

在上面的示例代码中,我们定义了一个名为line的字符数组,存储从输入流中读取的一行字符串。然后对每行输入进行处理,这里我们只简单地将其输出到标准输出。最后,我们需要手动删除换行符,以确保输出不会出现多余的空行。

总结

在C++编程中,我们可以使用getline()函数或cin.getline()函数来读取多行输入。这些函数都可以读取从输入流中读取一行字符串,并将其存储到一个字符串对象或字符数组中。值得注意的是,getline()函数会将读取到的换行符(’\n’)从输入流中删除,而cin.getline()函数会将换行符保留在输入流中。因此,在使用这些函数读取多行输入时需要注意这些细节。

  
  

评论区

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