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