# 输入输出
需要注意的是, 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 .