今天我学习了 C++ 中一个常用的输入函数——getline
。getline
函数用于从输入流中读取一行文本,并将其存储为字符串。以下是我学到的关键知识点:
1. getline
函数的基本用法
#include <iostream>
#include <string>
int main() {
std::string myString;
// 使用 getline 从标准输入流(键盘)读取一行文本
std::cout << "Enter a line of text: ";
std::getline(std::cin, myString);
// 输出读取到的文本
std::cout << "You entered: " << myString << std::endl;
return 0;
}
在上面的例子中,std::getline
从标准输入流中读取一行文本,并将其存储在 myString
字符串中。这使得我们能够轻松地处理用户输入的整行文本。
2. getline
的更多用法
指定定界符(Delimiter)
getline
还允许我们指定定界符(默认是换行符 \n
)。这意味着我们可以根据特定字符终止输入。
#include <iostream>
#include <string>
int main() {
std::string myString;
// 使用 ':' 作为定界符从输入流中读取一行文本
std::cout << "Enter text separated by ':': ";
std::getline(std::cin, myString, ':');
// 输出读取到的文本
std::cout << "You entered: " << myString << std::endl;
return 0;
}
在这个例子中,getline
会读取直到遇到冒号 :
,并将其之前的文本存储在 myString
中。
处理空行
有时候我们可能需要处理用户输入的空行。getline
可以用于检测空行并做出相应的处理。
#include <iostream>
#include <string>
int main() {
std::string myString;
// 使用 getline 读取一行文本,如果是空行则重新输入
do {
std::cout << "Enter text (not empty): ";
std::getline(std::cin, myString);
} while (myString.empty());
// 输出读取到的文本
std::cout << "You entered: " << myString << std::endl;
return 0;
}
在这个例子中,如果用户输入了空行,程序将要求用户重新输入。
总结
getline
函数是 C++ 中处理文本输入的有力工具,尤其在需要读取整行文本或处理特定定界符的情况下。通过灵活运用 getline
,我们能够更好地处理用户输入,使程序更加健壮。