std::string 是否仅适用于 C++ 中的 'std::cin'

Does std::string works only with 'std::cin' in c++

我最近通过搜索 Google 了解了 std::substr()。我看到了类似这样的代码:

std::string s = "This is an example string";
std::string s1 = s.substr(11, 7);
std::cout << s1 << std::endl;

现在,如果我尝试使用 scanf() 函数(而不是使用 std::cin)获取输入,程序会在运行时崩溃。 std::string不支持使用scanf()功能吗?

scanf() 属于 C 函数家族,作为 C 语言而非 C++ 的一部分,不直接支持 std::string 而是使用以空字符结尾的字符串。

如果您使用的是 C++,通常您应该更喜欢 std::string 而不是空终止字符串,the input/output library 而不是 printf()/scanf() 库函数。