/********************char数组传带空格的字符串**********************************/
char buf[MAX_BUF_SIZE] = "dir";//穿进来的命令
scanf("%[^\n]",buf);
cout<<strlen(buf)<<endl;
cout<<buf<<endl;
这里主要介绍一个参数,%[ ],这个参数的意义是读入一个字符集合。[ ]是个集合的标志,因此%[ ]特指读入此集合所限定的那些字符,比如%[A-Z]是输入大写字母,一旦遇到不在此集合的字符便停止。如果集合的第一个字符是“^”,这说明读取不在“^“后面集合的字符,即遇到”^“后面集合的字符便停止。此时读入的字符串是可以含有空格的。
可能最后可能会不读最后一个回车(因为读入的时候他忽略了回车),所以下边最好再加上一个回车的读取,可用getline()读取:
string huiche;
getline(cin,huiche); //消去回车 //getline要调头文件#include <string>