Я только что начал C++ сегодня, и я просмотрел множество каналов по этой теме. Во время поиска я нашел функцию с именем ignore, которая несколько помогла. Моя первоначальная проблема заключалась в том, что при запуске пропускался ввод. Я обнаружил, что это, вероятно, связано с тем, что \ n все еще находится в буфере, поэтому я использовал функцию cin.ignore(), чтобы очистить ее. Тем не менее, я все еще не получаю желаемого результата. Вот мой код:Не получать желаемый результат для cin.getline(),
{
time_t current;
char event[30];
char details[256];
char outFileName[21];
cout<< "Enter name of file to hold the input.[20 Character Max]: ";
cin>>outFileName;
ofstream outFile(outFileName);
cout<< "Event: ";
cin.getline(event, 30, '\n');
cin.ignore();
outFile<< event<< '\n';
cout<< "Details: ";
cin.getline(details, 256, '\n');
cin.ignore();
outFile<< details<< '\n';
current = time(NULL);
outFile<< ctime(¤t);
}
Для выхода, первая линия черная, вторая строка содержит список того, что должно быть на первой линии, и это также отсутствует первый письмо, третья строка в порядке с системным временем.
Если вы буквально только начали C++ сегодня, то слишком рано публиковать сообщения о переполнении стека. Есть тысячи дубликатов этой проблемы здесь на SO, и вы должны потратить неделю или три, просто * чтение * других сообщений ... –
Это не 'getline', оставляющий новую строку, это' cin >> '. Я настоятельно рекомендую вам начать использовать 'std :: string', и я ожидаю, что смогу ввести имя файла, содержащее пробелы. – chris