基本输入方法
在C++中,我们可以使用标准输入流cin来读取用户输入的字符串。具体而言,使用getline函数从标准输入流中读取字符串,并将其存储到一个string对象中。
std::string str;
// 更改输入结束符 '\n' 为 ';'
std::getline(std::cin, str, ';');
getline函数的基本语法如下:
#include <string>
#include <iostream>
int main() {
std::string str;
std::getline(std::cin, str);
std::cout << "You entered: " << str << std::endl;
return 0;
}
在这个例子中,我们首先声明了一个名为str的string对象,然后使用getline函数将用户输入存储到该对象中。最后,我们将输入的字符串输出到标准输出流中。
需要注意的是,getline函数会读取用户输入的一整行字符串,直到遇到换行符为止。因此,如果用户输入的字符串中包含了空格或制表符等字符,这些字符也会被一同读入。
从文件读取字符串
当需要从文件中读取字符串内容时,可以使用 C++ 标准库中的 ifstream 类来进行文件读取操作。以下是一个简单的示例:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream infile("filename.txt");
std::string line;
while (std::getline(infile, line)) {
std::cout << line << '\n';
}
infile.close();
return 0;
}
在上面的示例中,我们使用 std::ifstream 类打开文件并创建一个文件输入流对象 infile,然后使用 std::getline() 函数从输入流对象 infile 中读取每一行字符串,并将其存储到字符串变量 line 中。std::getline() 函数每次读取一行字符串,并且会在读取完一行字符串后自动将输入流的读取位置移动到下一行的开头。
在 while 循环中,我们不断读取文件中的每一行字符串,然后输出到屏幕上。最后,我们使用 close() 函数关闭文件输入流对象,释放相关资源。
需要注意的是,当文件读取完成后,我们需要使用 close() 函数关闭文件输入流对象,释放相关资源。
C++ 字符串输入内容校验
我们可以使用正则表达式来限制用户输入的字符串内容。在C++11中,可以使用regex库来进行正则表达式匹配。以下是一个例子:
#include <string>
#include <iostream>
#include <regex>
int main() {
std::string str;
std::regex pattern("[A-Za-z]+");
std::smatch match;
do {
std::cout << "Enter a string: ";
std::getline(std::cin, str);
} while (!std::regex_match(str, match, pattern));
std::cout << "You entered: " << str << std::endl;
return 0;
}