Napisałem ten kod w C++ w IDE CodeBlocks, ale kiedy go uruchomię, nie daje mi -1, jeśli nie czyta liczby, to daje mi 0. Czy coś jest nie tak z kodem?Wartość domyślna dla zmiennej w C++ przy użyciu cin >>
#include "iostream"
using namespace std;
int main()
{
cout<<"Please enter your first name and age:\n";
string first_name="???"; //string variable
//("???" means "don't know the name")
int age=-1; //integer variable (-1 means "don't know the age")
cin>>first_name>>age; //read a string followed by an integer
cout<<"Hello, " <<first_name<<" (age "<<age<<")\n";
return 0;
}
Opcja 'operator <<()' 'age' ustawi się jego wartość domyślna (czyli' 0' w tym przypadku) i nadpisania '-1' kiedy nie może odczytać liczby. To normalne zachowanie. –
@ πάνταῥεῖ Masz na myśli 'operator >>', prawda? – Angew
http://pl.cppreference.com/w/cpp/io/basic_istream/operator_gtgt Cytat: 'od C++ 11: Jeśli wyodrębnianie nie powiedzie się, zero jest zapisywane do wartości i ustawia się failbit' – bolov