* C++
string str;
std::cin >> str;
std::cout << str;
* C
char a[20];
scanf("%s",a);
printf("%s",a);
输入 I Love You!
输出 I
* 原因正是:按变量输入,程序无法区分处理,字符串空格和变量间隔符。
输入一行字符串
按字符串方式处理,程序默认以回车(Enter)为间隔符。
使用如下:
* C++ std::cin
istream & getline(char* buf, int bufSize);
istream & getline(char* buf, int bufSize, char delim);
std::cin.getline(数组名,长度,结束符)
1. 会丢弃缓冲区中的结束字符
2. 数组名:被输入的对象,只能使用Cstring,不支持string类对象
* C
char cmd[100];
gets(cmd) //可能导致栈溢出
fgets(cmd,100,stdin); //至多读取100 - 1个字符