istream の getline(char* p, streamsize s)
http://www.cplusplus.com/ref/iostream/istream/getline.html
って、行長がs以上ある時はどう動作するのが正しいのですか?

手元の g++(libstdc++ v3) だと、p に "" が入り、ストリームの現在位置は
進まず、直後に gcount() を呼ぶと0 が返り、その後で再び getline() を、
s の値を増やして呼んでも "" が戻り続けるという不可解な動作をするんですが。