Вместо того, чтобы получить буфер, как это, возможно, было бы легче читать четыре строки в отдельные string
с из стандартного ввода с использованием getline
(использовать цикл, если вы предпочитаете):
Тогда общая длина данных является сумма индивидуума string
длина. В качестве альтернативы используйте этот метод для извлечения данных от пользователя, а затем объедините их в четырехстрочный stringstream
.
Комбинированный пример кода:
#include <string>
#include <sstream>
#include <iostream>
std::string s[4];
size_t length(0);
std::ostringstream output;
for (size_t index = 0; index < 4; ++index)
{
getline(std::cin, s[index]);
length += s[index].length();
output << s[index] << std::endl;
}
output.flush();
streamoff streamLength = output.tellp();
Является ли это домашнее задание? Это круто, если это так, но мы хотели бы знать. –
@ Джон, я так не думаю, очень много qs недавно от @Kabumbus. –
Вы вообще хотите читать до тех пор, пока не произойдет какое-либо прерывание ввода или это только эти четыре фиксированные линии? – Pyjong