זה לא נכון
משום שמה שציינת צריך לקבל buffer ואורכו כפרמטרים. צריך להשתמש בפונקציה:
istream& std::getline(istream&, string&);
יש גירסה נוספת עם תו מפריד בין שורות. הגרסה המלאה היא כמובן template אבל לצורך העניין זה ברור גם כך. הפונקציה בעצמה תקצה זיכרון כנדרש, ללא תלות באורך השורה. דוגמה ל echo פשוט:
std::string s; while (getline(cin, s)) cout << s << endl;