Если код такой:
void rewrite(string *b) {
string c;
getline(cin, c);
*b = c;
}
int main()
{
string b;
cout << "Please enter a string" << endl;
getline(cin, b);
rewrite(&b);
cout << b;
То программа работает отлично. А если такой:
void rewrite(string *b) {
string c;
getline(cin, c);
*b = c;
}
int main()
{
string b;
cout << "Please enter a string" << endl;
getline(cin, b);
char userinput;
cin >> userinput;
if (userinput == 'f') {
rewrite(&b);
cout << b;
}
то программа игнорирует getline из функции rewrite. Сама программа должна перезаписывать строку на новую, которую введет пользователь. Переменная userinput нужна для создания консольного меню. Например, при вводе f в консоль запускалась данная функция ввода новой строки, при вводе другого char другая функция и тд.
userinput? – Nov 06 '20 at 08:11b, сравниваете какой-тоuserinput, причем сравниваете с символом... – Юрий Козлов Nov 06 '20 at 08:13getlineи думает, что это пустая строка – Nov 06 '20 at 08:17If the delimiter is found, it is extracted and discarded (i.e. it is not stored and the next input operation will begin after it).Вы что-то умалчиваете. – AlexGlebe Nov 06 '20 at 08:58