Большой Воронежский Форум
Страница 1 из 3
1 23 >
» Программирование>CodeBlocks
SerOver 18:36 22.02.2011
Начал изучать язык Си с компилятора CodeBlocks. И вот когда в коде надо вывести слово на русском языке, оно отображается в символах. А пишу, русское слово английскими буквами, отражается нормально. Как с этим бороться? [Ответ]
Spectator 19:47 22.02.2011
CodeBlocks - не компилятор, а IDE. И начинать изучать "язык Си" с самопальной IDE не самая здравая идея. Поставь Microsoft Visual C++. Там все отображается хотя бы как надо, а не "в символах" сразу после установки. [Ответ]
SerOver 20:11 22.02.2011
Так мне нужен Си, а не СИ++ [Ответ]
Yandex 20:38 22.02.2011
Spectator, Code::Block для начало самое то.

SerOver, если вывод в консоль делаешь (std::cout или printf), то необходимо сконвертировать строку в 866-ю кодировку. А вообще лучше пока забей и просто не используй национальные символы. Когда с языком разберешься, тогда и сделаешь без проблем. [Ответ]
Part!zan 20:42 22.02.2011

Сообщение от Spectator:
И начинать изучать "язык Си" с самопальной IDE не самая здравая идея

Какая разница, в чем изучать язык? Для начала сгодится любая IDE.

Сообщение от Yandex:
если вывод в консоль делаешь (std::cout или printf), то необходимо сконвертировать строку в 866-ю кодировку.

Проще переключить локаль. [Ответ]
SerOver 21:09 22.02.2011

Сообщение от Yandex:
Spectator, Code::Block для начало самое то.

SerOver, если вывод в консоль делаешь (std::cout или printf), то необходимо сконвертировать строку в 866-ю кодировку. А вообще лучше пока забей и просто не используй национальные символы. Когда с языком разберешься, тогда и сделаешь без проблем.

Такой кодиовки нет. Есть Windows - 874 и выше [Ответ]
Part!zan 21:35 22.02.2011

Сообщение от SerOver:
Такой кодиовки нет

такая кодировка есть

Изображения
[Ответ]
X0R 21:49 22.02.2011
Part!zan, гламурная темка) [Ответ]
SerOver 21:51 22.02.2011
Да есть, и галочка стоит. [Ответ]
SeFuS 23:06 22.02.2011
попробуй:

Сообщение от :
#include <stdio.h>
#include <stdlib.h>

#include <windows.h>
#include <locale.h>

int main()
{
setlocale(LC_ALL,"russian_russia.866");
wprintf(L"%s", L"Привет!\n");
MessageBoxW(NULL, L"Привет", L"Error", MB_OK);
return 0;
}

[Ответ]
Part!zan 12:33 23.02.2011
http://www.rsdn.ru/forum/cpp.applied/4045059.flat.aspx
коротко: mingw для русской консоли - не лучший выбор.

SerOver, либо пиши на инглише, либо придется использовать другой компилятор. [Ответ]
Spectator 16:29 23.02.2011

Сообщение от Yandex:
Spectator, Code::Block для начало самое то.

Ну да, ну да, только надо прикрутить компилятор и настроить язык
Не легче ли скачать русскую версию Visual Studio, установить и найти кнопку компиляции?)))
[Ответ]
Spectator 16:30 23.02.2011

Сообщение от SerOver:
Так мне нужен Си, а не СИ++

Без разницы. [Ответ]
X0R 19:05 23.02.2011

Сообщение от Spectator:
Ну да, ну да, только надо прикрутить компилятор и настроить язык

можно скачать сразу с компилятором. Установить и кодить. [Ответ]
The_God 19:50 23.02.2011
забей на с++ в нём думать надо, а это сложно [Ответ]
SerOver 22:46 23.02.2011

Сообщение от Spectator:
..Не легче ли скачать русскую версию Visual Studio, установить и найти кнопку компиляции?)))

Это как.
А Visual Studio с Си тоже работает? И если работает с СИ, то как настроить? [Ответ]
Spectator 12:11 24.02.2011

Сообщение от SerOver:
Это как.
А Visual Studio с Си тоже ратотает? И если работает с СИ, то как настроить?

Что как? Работает. Как настроить - в приложении.
Изображения
Нажмите на изображение для увеличения
Название: c.PNG
Просмотров: 61
Размер:	24.9 Кб
ID:	1172920  
[Ответ]
Shtirliz 12:48 24.02.2011
А мне eclipse нравится... :-[ [Ответ]
SerOver 16:52 24.02.2011

Сообщение от SeFuS:
попробуй:

компилятор CodeBlocks выдает ошибку

E:\Proect\C\Proba\main6.c|10|converting to execution character set: Illegal byte sequence|
E:\Proect\C\Proba\main6.c|11|converting to execution character set: Illegal byte sequence|
||=== Build finished: 2 errors, 0 warnings ===| [Ответ]
Part!zan 19:27 24.02.2011
SerOver, тебе ошибку на русский язык перевести или что? Учи матчасть, это основы.

Сообщение от :
A "string literal" is a sequence of characters from the source character set enclosed in double quotation marks (" "). String literals are used to represent a sequence of characters which, taken together, form a null-terminated string. You must always prefix wide-string literals with the letter L.

Syntax
string-literal:
" s-char-sequence opt "

L" s-char-sequence opt "

s-char-sequence:
s-char

s-char-sequence s-char

s-char:
any member of the source character set except the double quotation mark ("), backslash (\), or newline character

escape-sequence

The example below is a simple string literal:

Copy Code
char *amessage = "This is a string literal.";


All escape codes listed in the Escape Sequences table are valid in string literals. To represent a double quotation mark in a string literal, use the escape sequence \". The single quotation mark (') can be represented without an escape sequence. The backslash (\) must be followed with a second backslash (\\) when it appears within a string. When a backslash appears at the end of a line, it is always interpreted as a line-continuation character.

Если я, конечно, правильно протелепатил исходник... [Ответ]
SerOver 19:17 25.02.2011
Поставил Microsoft Visual C++ 2010 Express.
Код на С
Код:
 #include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Привет! Во как!!!.\n");
    return 0;
}
И все равно, русский не понимает. Выводит символы [Ответ]
Part!zan 20:13 25.02.2011
SerOver, изучай функцию setlocale. [Ответ]
Spectator 17:22 26.02.2011

Сообщение от SerOver:
Поставил Microsoft Visual C++ 2010 Express.
Код на С

Код:
 #include <stdio.h>
#include <stdlib.h>

int main()
{
    printf("Привет! Во как!!!.\n");
    return 0;
}
И все равно, русский не понимает. Выводит символы

Хм, проверил - действительно не понимает. Но вышеозвученное setlocale(LC_ALL,"russian_russia.866"); в VC ситуацию исправило на ура. А на Codeblocks забей.
З.Ы. setlocale(LC_ALL, "Russian"); кстати, тоже подходит. [Ответ]
Spectator 17:23 26.02.2011
полный текст исходника, со всеми нужными заголовками:

Код:
// test_rus.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

#include <windows.h>
#include <locale.h>

int main()
{
setlocale(LC_ALL, "Russian");
wprintf(L"%s", L"Привет!\n");
return 0;
}
[Ответ]
Part!zan 18:16 26.02.2011
Самый правильный вариант:

Сообщение от :
setlocale(LC_ALL,".ACP");

[Ответ]
SerOver 15:24 27.02.2011
На компе, вылетела система. Надо восстанавливать.
Как исправлю, проверю.
Спасибо за помощь. [Ответ]
SerOver 22:03 28.02.2011

Сообщение от Spectator:
полный текст исходника, со всеми нужными заголовками:


Код:
// test_rus.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>

#include <windows.h>
#include <locale.h>

int main()
{
setlocale(LC_ALL, "Russian");
wprintf(L"%s", L"Привет!\n");
return 0;
}

Все равно не работает.
Пишет, что не может найти файл
код3.cpp(4): fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory
Без этого файла, русский вывел нормально. [Ответ]
Spectator 12:33 01.03.2011

Сообщение от SerOver:
Все равно не работает.
Пишет, что не может найти файл
код3.cpp(4): fatal error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory
Без этого файла, русский вывел нормально.

Visual Studio или CodeBlocks ? В CodeBlocks его и не должно быть. [Ответ]
SerOver 17:02 01.03.2011
Не нашел файл в Microsoft Visual C++ 2010 Express. [Ответ]
Spectator 17:57 01.03.2011

Сообщение от SerOver:
Не нашел файл в Microsoft Visual C++ 2010 Express.

Создай новый проект. [Ответ]
Страница 1 из 3
1 23 >
Вверх