我的问题很简单,getline(istream,string)是如何实现的?
你如何解决像getline(char * s,streamsize n)这样固定大小的char数组的问题?
他们使用临时缓冲区和许多调用新char [length]或其他整洁的结构?
你如何解决像getline(char * s,streamsize n)这样固定大小的char数组的问题?
他们使用临时缓冲区和许多调用新char [length]或其他整洁的结构?
解决方法
getline(istream&,string&)以读取行的方式实现.它没有明确的实施;每个图书馆可能彼此不同.
可能的实施:
istream& getline(istream& stream,string& str) { char ch; str.clear(); while (stream.get(ch) && ch != '\n') str.push_back(ch); return stream; }