21xrx.com
2024-12-22 23:26:35 Sunday
登录
文章检索 我的文章 写文章
C++的多行输入方法
2023-07-02 00:33:39 深夜i     --     --
C++ 多行输入 cin getline函数 stringstream类

C++是一种流行的编程语言,具有强大的输入输出功能。在编写程序时,我们经常需要从控制台或文件中读取多行输入。本文将介绍几种C++中实现多行输入的方法。

1. getline函数

getline函数是C++中最常用的读取字符串的方法之一。它可以从标准输入流中读取一行文本,并存储到一个字符串变量中。 getline函数的原型如下:


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

其中,is表示输入流对象,str表示要填充的字符串变量,delim表示分隔符,通常为'\n'。该函数的返回值是输入流对象。可以通过循环调用该函数来读取多行输入。例如:


#include <iostream>

#include <string>

using namespace std;

int main() {

  string line;

  while (getline(cin, line))

    cout << line << endl;

  

  return 0;

}

2. scanf函数

scanf函数是C语言标准库中的一个输入函数,也可以在C++中使用。它可以按照指定格式从输入流中读取数据,并存储到变量中。可以使用循环调用该函数来读取多行输入。例如:


#include <cstdio>

using namespace std;

int main() {

  char line[100];

  while (scanf("%[^\n]", line) != EOF) {

    getchar(); //读取换行符

    printf("%s\n", line);

  }

  return 0;

}

其中,%[^\n]表示读取除换行符外的任意字符,直到遇到换行符为止。使用getchar函数读取换行符,否则下一次读取会直接读到换行符。

3. cin.getline函数

cin.getline函数是C++中基于流的字符串输入函数。它可以从标准输入流中读取一行文本,并存储到一个字符数组中。cin.getline函数的原型如下:


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

其中,s表示存储字符串的数组,n表示要读取的字符数。可以通过循环调用该函数来读取多行输入。例如:


#include <iostream>

using namespace std;

int main() {

  char line[100];

  while (cin.getline(line, 100))

    cout << line << endl;

  

  return 0;

}

以上三种方法都可以用来读取多行输入。具体使用时需要根据实际情况选择合适的方法。使用getline函数可以直接读取到string类型的变量中,比较方便;使用scanf函数可读取任意类型的变量,比较灵活;使用cin.getline函数可以直接读取到字符数组中,比较快捷。

  
  

评论区

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