Crew
22-06-2003, 21:59
Никогда не любил ни cin ни cout
Но вот себе пример копирую с сопровождающего диска (авторы компилировали точно не на MSVC)
Вот пример:
* *string * * * *strID;
* *string * * * *strName;
* *int * * * * * intPrice;
* *cout << "Add Products:\n";
* *while(1)
* *{
* * * *cout << "ID (Type 0 to finish): ";
* * * *getline(cin, strID);
* * * *if (strID == "0") * *break;
* * * *cout << "Name * * * * * * * * : ";
* * * *getline(cin, strName);
* * * *cout << "Price * * * * * * * *: ";
* * * *cin *>> intPrice;
* * * *cin.ignore();
* * * *mProducts[strID] = new Product(strID, strName, intPrice);
* * * *cout << "Product added to the list\n\n";
* *}
[br]
Несмотря на внешнюю прозрачность происходит следующее:
вместо того, чтобы завершить ввод по первому getline (после Enter) мне выдается еще одна строка, вроде как относящаяся к тому же getline. Если смотреть по trace то эта вторая строка не запоминается.
Приблизительно повторяется то же, что и в первом случае со вторым getline.
Ввести price не удается, он срывается с места и считает что я везде ввел по нулям и зацикоивается в этом while(1)
простенькие cin и cout срабатывали у меня раньше...
здесь http://forum.oszone.net/topic.cgi?forum=18&topic=222&start=0#0
прочитал
Вероятнее всего причина в том, что в проверяющей системе стоит компилятор MSVC 6.0 и там замечено много глюков с STL
Бороться с этим можно, может знает кто? Патч специальный например какой-нибудь....
А то я задумал активно использовать STL в своей программе, а тут даже рабочий пример "нерабочий". Обидно :(
Но вот себе пример копирую с сопровождающего диска (авторы компилировали точно не на MSVC)
Вот пример:
* *string * * * *strID;
* *string * * * *strName;
* *int * * * * * intPrice;
* *cout << "Add Products:\n";
* *while(1)
* *{
* * * *cout << "ID (Type 0 to finish): ";
* * * *getline(cin, strID);
* * * *if (strID == "0") * *break;
* * * *cout << "Name * * * * * * * * : ";
* * * *getline(cin, strName);
* * * *cout << "Price * * * * * * * *: ";
* * * *cin *>> intPrice;
* * * *cin.ignore();
* * * *mProducts[strID] = new Product(strID, strName, intPrice);
* * * *cout << "Product added to the list\n\n";
* *}
[br]
Несмотря на внешнюю прозрачность происходит следующее:
вместо того, чтобы завершить ввод по первому getline (после Enter) мне выдается еще одна строка, вроде как относящаяся к тому же getline. Если смотреть по trace то эта вторая строка не запоминается.
Приблизительно повторяется то же, что и в первом случае со вторым getline.
Ввести price не удается, он срывается с места и считает что я везде ввел по нулям и зацикоивается в этом while(1)
простенькие cin и cout срабатывали у меня раньше...
здесь http://forum.oszone.net/topic.cgi?forum=18&topic=222&start=0#0
прочитал
Вероятнее всего причина в том, что в проверяющей системе стоит компилятор MSVC 6.0 и там замечено много глюков с STL
Бороться с этим можно, может знает кто? Патч специальный например какой-нибудь....
А то я задумал активно использовать STL в своей программе, а тут даже рабочий пример "нерабочий". Обидно :(