Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2010, 20:32   #1
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию getline(wcin, str) - лишний ввод

Интересная вещь получается, когда я компилирую данную программу на VC 6.0:

Код:
#include <cstdlib>
#include <iostream>
#include <locale.h>
#include <windows.h>
#include <string>

using namespace std;

int main(){
	setlocale( LC_ALL, ".866" );

	wstring str = L"Русский вывод."; 
	wstring inp = L"";

	wcout << L"Привет!" << endl;
	wcout << str << endl;

	getline(wcin, inp);

	wcout << inp << endl;

	if(inp.find(L"Русский")!=wstring::npos) wcout << L"Найдено." << endl;
	else wcout << L"Не найдено." << endl;

	cin.get();
	return 0;
}
В общем, выводит текст как надо, по-русски, а вот при вводе строки, я ввожу слова и жму Enter. Курсор переходит на следующую строку и терпеливо ждёт, пока я снова что-нибудь введу. Жму снова Enter, и ввод заканчивается. При этом в inp сохраняется только то, что я ввёл до первого нажатия клавиши Enter.
Т.е. я жму Enter два раза. Зачем оно надо? В чём тут подвох?
И ещё, кстати, мелочь, но второстепенная. Я скопировал сюда код прямо из редактора VC, и вместо русских букв при копировании появились наши с вами любимые крякозябры. Они меня преследуют. Скоро с ума сойду.
Кипящий чайник вне форума Ответить с цитированием
Старый 11.09.2010, 10:57   #2
ThisIzGame
Форумчанин
 
Регистрация: 31.08.2009
Сообщений: 161
По умолчанию

у меня всё нормально вводит(Visual Studio 2010)...
скрин: http://i080.radikal.ru/1009/f8/5e4d64cb879a.jpg
ThisIzGame вне форума Ответить с цитированием
Старый 11.09.2010, 11:26   #3
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Цитата:
Сообщение от Кипящий чайник Посмотреть сообщение
#include <locale.h>
Пичаль =-(

Ну и да, тоже работает )
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 11.09.2010, 12:44   #4
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию

2ThisIzGame А какая у вас студия, позвольте полюбопытствовать? По внешнему виду не похожа на шестую.
Кипящий чайник вне форума Ответить с цитированием
Старый 11.09.2010, 13:57   #5
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

#include <cstdlib>
#include <iostream>
#include <string>

почему нету .h?
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 11.09.2010, 15:44   #6
rik_nel
Пользователь
 
Аватар для rik_nel
 
Регистрация: 05.08.2010
Сообщений: 44
По умолчанию

savva
В современных компилятора .h не требуетсо!

Цитата:
2ThisIzGame А какая у вас студия, позвольте полюбопытствовать? По внешнему виду не похожа на шестую.
ThisIzGame черним по белому написал,что ето VS2010!
Хочеш змінити світ - почни з себе.(Марк Аврелій)

Последний раз редактировалось Stilet; 13.09.2010 в 14:50.
rik_nel вне форума Ответить с цитированием
Старый 11.09.2010, 16:16   #7
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию

Ну, господа, 10 и 6 - разные цифры, не находите?
Кипящий чайник вне форума Ответить с цитированием
Старый 11.09.2010, 18:01   #8
Syuf
Форумчанин
 
Аватар для Syuf
 
Регистрация: 02.02.2010
Сообщений: 599
По умолчанию

Цитата:
Ну, господа, 10 и 6 - разные цифры, не находите?
10 - это не цифра
"Лишь то читается легко, что написано с трудом; что в час написано, то в час и позабыто."
Syuf вне форума Ответить с цитированием
Старый 11.09.2010, 18:28   #9
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

#include <cstdlib>
#include <iostream>
#include <locale.h>
#include <windows.h>
#include <string>

Задам вопрос по другому,почему в одних ты прописал .h а в других нет?что за избирательность?

"В современных компилятора .h не требуетсо!"

В современных много чего можно не писать,можно вообще графический компилятор взять,в нём нужно только кнопки тыкать и не писать кода.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума Ответить с цитированием
Старый 11.09.2010, 18:37   #10
Кипящий чайник
Форумчанин
 
Регистрация: 17.12.2009
Сообщений: 101
По умолчанию

Начнём с того, что cstdlib.h компилятор не находит. iostream.h - при компиляции выводится аж 19 ошибок (а вам слабо?), а просто windows мы тоже не видим. А в string и locale что есть .h, что её нет - фиолетово, на результат не влияет.
Вот вам и избирательность.

Последний раз редактировалось Кипящий чайник; 11.09.2010 в 19:19.
Кипящий чайник вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
getline kir_rik Общие вопросы C/C++ 14 11.09.2010 15:56
str->array & array->str LeoN PHP 6 06.07.2010 22:38
Не работает с первого раза getline AxenicX Помощь студентам 2 28.11.2009 23:43
Функция С++ getline() Golovastik Общие вопросы C/C++ 8 30.07.2009 00:20
int to str andrey4623 Общие вопросы C/C++ 2 04.02.2008 17:44