2013-09-23 3 views
-1
fstream file; 
char *email=new char[100]; 
cout<<endl<<"enter email"; 
cin.getline(email,100); 
char *password=new char[100]; 
cout<<endl<<"enter password"; 
cin.getline(password,100); 
file.open("admin.txt",ios::out); 
if(file.good()) 
{ 
    file<<email<<"\n"; 
    file<<password<<"\n"; 
} 
cout<<"contents added"; 

Консоль позволяет вводить только одно значение, которое сохраняется в переменной пароля, почему?Первый cin.getline skips

+3

* Сотни * дубликатов. Пожалуйста, найдите этот сайт немного, прежде чем задавать вопрос. –

+0

Посмотрите на «связанные» прямо сейчас, когда вы создали вопрос, так или иначе;) –

+0

Почему вы выделяете динамически вместо использования 'std :: string'? –

ответ

0

Вы должны игнорировать оставшиеся символы во входном потоке:

std::cin.getline(email, 100); 
std::cin.ignore(std::numeric_limits<std::streamsize>::max()); 

Вы также должны использовать std::string вместо сырых указателей:

std::string email; 
std::string password; 

std::cin >> email >> password; 

std::fstream file("admin.txt", std::ios_base::out); 

if (file << email << password) 
{ 
    std::cout << "Content added" << std::endl; 
}