# 输入输出

需要注意的是, string 类对象不能直接由 scanf() 读入,除非预先为该对象分配空间。例如,下述代码无输出:

#include <iostream>
#include <string>
string s;
int main() {
    scanf("%s", &s);
    std::cout<<s;
    return 0;
}

解决的方式由许多种,包括:

一、采用 cin 输入:简单无脑,但是有点慢。

二、先输入为 char[]char* , 然后转 string . 直接赋值即可,会强制类型转换。

三、预先分配 string 对象的大小。

#include <iostream>
#include <string>
string s;
int main() {
    s.resize(100);
    scanf("%s", &s[0]);
    std::cout<<s;
    return 0;
}

这样就可以了,其中输入的字符串最大长度为 100 .

#