getline 、 cin.getline、stringstreamgetline 与 cin.getline 的区别getline (来自string库)用于读取输入流中的一行数据存储到std::string对象中。语法getline(istream is, string str, char delim)其中delim是可选的分隔符默认为\n。动态调整string的大小以适应输入内容。示例#includestring#includeiostreamusingnamespacestd;intmain(){string line;getline(cin,line);// 读取整行包括空格coutline;}cin.getline (来自iostream库)用于读取输入流中的一行数据存储到 C 风格字符数组char[]中。语法cin.getline(char* s, streamsize n, char delim)n指定最大读取长度包括终止符\0。固定缓冲区大小可能因输入过长导致截断或错误。n就是一个变量名一般表示要读取 / 写入的字符数或字节数。示例#includeiostreamusingnamespacestd;intmain(){charbuffer[100];cin.getline(buffer,100);// 读取最多 99 个字符coutbuffer;}关键区别存储类型getline用stringcin.getline用char[]。安全性getline自动管理内存cin.getline需手动分配缓冲区。灵活性getline支持动态扩展cin.getline受固定大小限制。stringstream 的使用方法stringstream来自sstream库用于将字符串视为流支持类似cin/cout的操作常用于字符串分割或类型转换。基本用法#includesstream#includestringusingnamespacestd;intmain(){string data123 3.14 hello;stringstreamss(data);// 初始化intnum;doublepi;string text;ssnumpitext;// 提取数据coutnum pi text;}字符串分割string inputapple,orange,banana;stringstreamss(input);string token;while(getline(ss,token,,)){// 按逗号分割couttokenendl;}去除字符串中的空格#includeiostream#includesstream#includestring#includevectorintmain(){std::string inputHello World This is a test;std::istringstreamiss(input);std::vectorstd::stringtokens;std::string token;while(isstoken){tokens.push_back(token);}return0;}类型转换string numStr42;stringstreamss(numStr);intnum;ssnum;// 字符串转整数