при попытке использовать getline в цикле независимо от n дает ввести строку только один раз. помогите исправить.
int n;
cin >> n;
string s;
for(int i = 0; i < n; i++)
{
getline(cin,s);
}
Проблема в том, что считывание продолжается в той же строке, в которой было считано n
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
cin.ignore();
string s;
for(int i = 0; i < n; i++)
{
getline(cin,s);
cout << s<<endl;
}
}
Чуть выше была указана одна из ошибок, но я бы делал немного по-другому... К тому же, у вас ещё несколько нюансов по коду (хоть и не критичных - дело, скорее вкуса и оформления).
#include <iostream>
using namespace std;
int main(int argc, const char * argv[])
{
int n;
string s;
cout<<"input number: "<<flush;
cin>>n;
for(int i=1; i<=n; i++)
{
cout<<"input string: "<<flush;
cin>>s;
cout<<"string No. "<<i<<": "<<s<<"\n\n";
}
cout<<endl;
return 0;
}
Мой код отрабатывает без проблем. Добавил cout-ы для наглядности. Их можно убрать без вреда для кода.
Во-первых, при инициализации цикла, я бы в первичное выполнение записал i=1 и в условие добавил i<=n, потому что это выглядит немного логичнее. Вместо getline(), я бы просто делал cin>>s. Ну а смысл? Хотя, если гуру С++ меня поправят и дадут объяснение - что ж, буду благодарен за науку. :)
А вот в конце кода у @koshachok есть фундаментальная ошибка. Функция main() должна возвращать значение! Это правильно. Да, компилятор это может сделать и за вас. Но доверять всё компилятору - дурной тон. Поэтому я добавил return 0;, чтобы сообщить, что программа отработала без ошибок. Передача аргументов в main() тоже может выполняться компилятором вместо пользователя, но я уже упоминал, что доверять компилю - дурной тон.
Опять же, это моё личное мнение. Я в С++ новчиок, поэтому готов выслушать адекватную (и главное обоснованную) критику. Я готов признавать свои ошибки. :)
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости