下面的好像不太对,我以后改。
gets(str)在cstdio中,gets遇到空格不会停止,只有遇到换行符才会停止,它的参数必须是char型数组,不能是string型。
getline (char* s, streamsize n, char delim );geline在缓冲区中读取指定个数的字符或者读到某个停止符后结束读取,将读取到的字符输入到字符数组或string类中,并且自动添加'\0'。它在iostream中,s指的是被操作的字符数组数组或string类,n指的是从缓冲区中读取多少个字符后停止,delim指的是缓冲区中读到哪个字符就停止读取(不会将那个停止符号读进去)。此外,如果省略delim,写成getline (char* s, streamsize n)这种形式。那么getline自动将delim默认为换行符。还有一种在string中的getline,这里就不研究了。
gets,getline的好处相较于cin就是,可以读取空格。