Другие языки программирования и технологии

Как ввести новую строку в консоль, чтобы переменная счета увеличилась? С++

Мне нужно подсчитать пробелы, точки, я ввожу их в консоль вручную, ввожу данные то есть. А как со строкой?
#include <iostream>

using namespace std;

int main() {
int s, d, nl;
char c;
s = d = nl = 0;
while (cin.get(c)) {
if (c == '\n') ++nl;
if (c == ' ') ++s;
if (c == '.') ++d;
}
cout << "строк: " << nl << endl
<< "пробелов: " << s << endl
<< "точек: " << d << endl;
return 0;
}

Окончание ввода в консоли в разных ОС по разному делается, к примеру в винде это будет последовательность нажатия Enter, далее комбинации Ctrl-Z и снова Enter, в юниксовых консолях достаточно нажать Ctrl-D.

Как выше было отмечено, таки непонятно что тебе конкретно надо, выложи задание и свой код.

Если ты хочешь работать непосредственно с каждой введенной строкой и использовать getline, то просто считай, сколько раз отработал вызов getline:

#include <iostream>
#include <string>

using namespace std;

int main() {
int sc = 0;
string s;
while (getline(cin, s)) {
++sc; // добавляем кол-во введенных строк
// считаем кол-во нужных символов в введенной строке
// ...
}
cout << "введено строк: " << sc << endl;
// ...
return 0;
}
Александр Левадный
Александр Левадный
51 116
Лучший ответ
Александр Левадный 25-я строка в твоем коде:

> k += l;

Че это за хня? Зачем она нужна?
Александр Левадный А все понял.
Сорри, ты пытаешься весь текст в одно строку считать, но проблема в том, что getline отбрасывает символы новой строки, т. е. в результирующей строке у тебя ни одного символа '\n' не будет.
Андрей Бабкин Спасибо кстати, я теперь свой код изменил, чтобы был компактный:)
Энтер
Подробней, в чем состоит задание? А лучше скиньте ваш код.

Отправил свой скайп почтой для связи, здесь неудобно обсуждать.
ГС
Гоб Сек
280