Setlocate и char xx[30]; - Не компилирует - C (СИ)
Формулировка задачи:
Имеем код C:
Отлично компилируется, нет проблем. Русский работает в консоли.
Но стоит добавить допусти как компилятор(Visual Studio C++ 2010 express) отказывается работать:
Если закомментировать setlocate - работает. Так же и наоборот. Вместе - не хотят.
Подскажите знающие люди, в чем могут быть грабли. Заранее спасибо.
#include <locale.h>;
#include <stdio.h>;
int main()
{
setlocale(LC_ALL,"Russian");
printf("Тест C\n");
getchar();
return 0;
}char name[40];
вот так:#include <locale.h>;
#include <stdio.h>;
int main()
{
setlocale(LC_ALL,"Russian");
char name[40];
printf("Тест C\n");
getchar();
return 0;
}
1>------ Построение начато: проект: test, Конфигурация: Debug Win32 ------
1> test.c
1>c:\users\mult\documents\visual studio 2010\projects\test.c\test\test.c(33): warning C4067: непредвиденные лексемы за директивой препроцессора, требуется newline
1>c:\users\mult\documents\visual studio 2010\projects\test.c\test\test.c(34): warning C4067: непредвиденные лексемы за директивой препроцессора, требуется newline
1>c:\users\mult\documents\visual studio 2010\projects\test.c\test\test.c(38): error C2143: синтаксическая ошибка: отсутствие ";" перед "тип"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Решение задачи: «Setlocate и char xx[30]; - Не компилирует»
textual
Листинг программы
#include <iostream>
#include <locale>
using namespace std;
int main()
{
// установка русской локали для строкового потока и для вывода
wcout.imbue(locale("rus_rus.866"));
wcin.imbue(locale("rus_rus.866"));
wchar_t mass[100];
wcin.getline(mass,99);
wcout << L"Вы ввели такую строку: "<< mass << endl;
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с потоками ввода-вывода и локали.
- Устанавливается русская локаль для строкового потока wcout и для ввода wcin.
- Создается массив типа wchar_t с именем mass размером 100 символов.
- Вводится строка с помощью функции getline, которая записывает введенные символы в массив mass до тех пор, пока не встретит символ новой строки или не заполнит массив до 99 символов.
- Выводится сообщение с введенной строкой с помощью функции wcout.
- Программа завершается с кодом 0, что означает успешное выполнение.