📅  最后修改于: 2023-12-03 15:13:58.482000             🧑  作者: Mango
C++
中的 getline()
函数和字符数组getline()
函数是C++
流库中的函数之一,用于从std::istream
对象中读取一行文本。另外,字符数组也是C++
中一个基本的数据类型,用于存储一串字符数据。
本文将介绍C++
中的getline()
函数和字符数组的用法及注意事项。
getline()
函数的用法getline()
函数有多种使用形式,这里介绍最常用的形式:
std::getline(std::istream& is, std::string& str, char delim);
该函数的作用是从is
流中读取一行文本并存储到str
字符串中,遇到分隔符delim
停止读取。
例如,以下代码从标准输入流中读取一行文本并输出:
#include <iostream>
#include <string>
int main()
{
std::string line;
std::getline(std::cin, line);
std::cout << "Input: " << line << std::endl;
return 0;
}
运行程序后,在控制台输入一行文本,程序将输出所输入的文本。
字符数组是C++
中的一个基本数据类型,用于存储一串字符数据。在C++
中,可以使用以下两种形式创建字符数组:
char arr[10]; // 静态分配,长度为10
char* p = new char[10]; // 动态分配,长度为10
静态分配的字符数组在栈区分配,生命周期随其所在函数结束而结束;动态分配的字符数组在堆区分配,需要手动释放内存。
以下是一个使用字符数组的示例程序,该程序从命令行参数中读取一个字符串并输出:
#include <iostream>
int main(int argc, char* argv[])
{
if (argc <= 1)
{
std::cerr << "Usage: " << argv[0] << " <string>" << std::endl;
return 1;
}
char arr[100];
strncpy(arr, argv[1], 100);
std::cout << arr << std::endl;
return 0;
}
运行程序时,在命令行中输入一个字符串作为程序的第一个参数,程序将输出该字符串。
使用getline()
函数和字符数组时需要注意以下事项:
getline()
函数将读取的文本存储到std::string
对象中,而不是字符数组。如果需要使用字符数组存储读取的文本,可以使用std::string
的c_str()
函数将其转换为字符数组。delete[]
释放内存,否则会造成内存泄漏。本文介绍了C++
中的getline()
函数和字符数组的用法及注意事项。了解了这些内容,可以更加灵活地使用C++
进行字符串处理。