Подтвердить что ты не робот

Чтение полной строки ввода

Я пытаюсь сохранить вход, который вводит пользователь через консоль. поэтому мне нужно включить "enter" и любое свободное пространство.

Но cin перестает давать мне ввод после первого пробела.

Есть ли способ прочитать целые строки до нажатия CTRL + Z или что-то еще?

4b9b3361

Ответ 1

есть ли способ readLines до нажатия CTRL + Z или что-то??

Да, именно так, используя бесплатную std::getline функцию (а не метод istream с тем же именем!):

string line;

while (getline(cin, line)) {
    // do something with the line
}

Это будет читать строки (включая пробелы, но без окончания новой строки) с входа до тех пор, пока не будет достигнут конец ввода, или cin не сообщит об ошибке.

Ответ 2

#include <iostream>
#include <string>
using namespace std;

int main() 
    string s;
    while( getline( cin, s ) ) {
       // do something with s
    }
}

Ответ 3

Для моей программы я написал следующий бит кода, который читает каждый отдельный символ ввода до нажатия ctrl + x. Здесь код:

char a;
string b;
while (a != 24)
{
cin.get(a);
b=b+a;
}
cout << b;

Для Ctrl + z введите следующее:

char a;
string b;
while (a != 26)
{
cin.get(a);
b=b+a;
}
cout << b;

Я не могу подтвердить, что решение ctr + z работает, поскольку я на компьютере UNIX, а ctrl + z убивает программу. Однако он может работать или не работать для окон; Вы должны были убедиться сами.

Ответ 4

Вы можете использовать функцию getline в С++

#include<iostream>
using namespace std;
int main()
{
    char msg[100];
    cin.getline(msg,100);
    return 0;
}

Ответ 5

#include <string>
#include <iostream>

int main()
{

    std::cout << "enter your name: ";

    std::string name;

    std::getline(std::cin, name);

    return 0;

}