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, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д