std :: string是否仅适用于' std :: cin'在c ++中

时间:2018-02-08 08:18:21

标签: c++ scanf cin

我最近通过在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()功能吗?

1 个答案:

答案 0 :(得分:4)

scanf()属于一系列C函数,它们是C语言的一部分而不是C ++,不提供对std::string的直接支持,而是使用空终止字符串。

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