argon bulletin board

Експертно търсене  

Новини:

Регистрирането на нови потребители е временно деактивирано.

Автор Тема: Малко помощ за С++  (Прочетена 4178 пъти)

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Малко помощ за С++
« -: 22.02.2012, 15:09:25 »

Здравейте,
Решавам задачи на С++ от учбник, но немога да използвам кирилица. С други думи когато решавам елементарни задачки си пиша във cin ili cout "нещо на кирилица", а когато стартирам компилаторът ми излиза !@#%$#%#$^ а.к.а. нещо като гръцка азбука. Може ли някой да ми помогне и да ми каже как да си направя програмата така, че да показва българските буквички?   :roll:
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re:Малко помощ за С++
« Отговор #1 -: 22.02.2012, 17:01:02 »

По спомени... проблемът би трябвало да ти е в настройките на конзолата. Опитай се да смениш encoding-a на конзолата - на utf-8, windows-1251 или cp1251 (конзолата е онова нещо в което ти излиза резултата).

Ако конзолата ти е част от IDE-то - търси настройките там. Ако ползваш Command Prompt на Windows - настройваш него. Ако ползваш linux - нямам идея.
Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #2 -: 22.02.2012, 17:39:17 »

Благодаря за помоща, но ако можеж да доуточниш къде точно се намират настроиките на тия IDE-тат и прочие,...
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re:Малко помощ за С++
« Отговор #3 -: 22.02.2012, 17:47:42 »

Аз не пиша на C++ от 10 години и не съм актуален.

Но ако кажеш с какво IDE работиш предполагам, че някой колега може да ти помогне повече.
Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #4 -: 22.02.2012, 17:51:30 »

microsoft visual c++ 2006
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re:Малко помощ за С++
« Отговор #5 -: 22.02.2012, 18:07:42 »

Докато някой ти даде смислен отговор можеш да видиш това: http://www.cplusplus.com/forum/windows/9797/

Edit:
До колкото схващам ключа е:
SetConsoleOutputCP(CP_UTF8);
« Последна редакция: 22.02.2012, 18:09:54 от emil »
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page
Re:Малко помощ за С++
« Отговор #6 -: 22.02.2012, 18:10:04 »

http://forums.data.bg/index.php?showtopic=1172004 постове 6 и 7

Разгледай и поста на Codeplug November 5th, 2010, 01:56 AM тук http://www.codeguru.com/forum/archive/index.php/t-504805.html - вместо 1250 ползвай 1251. Може да се наложи и настройка на промпта.

Емо, не го вкарвай в UTF-8, че не знам Unicode низове ли ползва...
Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #7 -: 22.02.2012, 18:35:34 »

Нищо не става нито от http://forums.data.bg/index.php?showtopic=1172004
нито от http://www.cplusplus.com/forum/windows/9797/
или пък от  http://www.codeguru.com/forum/archive/index.php/t-504805.html

Не ви обвинявам в нищо, предполагам, че аз не ви давам достатачно информация за това каакво всъшност използвам, но за жалост не съм много навътре с unicode IDE UTF-8 и прочие, аз съм просто кандидат-студент ... :(
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re:Малко помощ за С++
« Отговор #8 -: 22.02.2012, 19:55:52 »

Пробвай да си направиш нов проект и в него да имаш един единствен файл, който да съдържа само това:

//Visual C++ 2005 Express

#include "stdafx.h"

#include <windows.h>

#pragma comment(lib, "user32.lib")



int _tmain(int argc, _TCHAR* argv[])

{

        SetConsoleOutputCP(1251);



        char buff[] = "Здравей свят на български!";

        CharToOemA(buff, buff);

        printf("%s", buff);



        return 0;

}

Според http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296 това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

Никога не съм имал инсталирано VC и не мога да пробвам за да ти дам по-смислени идеи. Мисля, си че ще получиш по-точни насоки ако качиш тук един screenshot на IDE-то и конзолата с омазаната кирилица. Така ще се спестят доста уточняващи въпроси.
Активен

Таньо Иванов

  • Модератор
  • *****
  • Неактивен Неактивен
  • Публикации: 81
  • Бъди коректен потребителю!
Re:Малко помощ за С++
« Отговор #9 -: 23.02.2012, 08:33:11 »

Преди и аз имах същия проблем, но не бях с Visual Studio, а с CodeLite.
Ето едно алтернативно решение.
Активен
Блаженството за тялото е здравето, за ума – знанието.

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #10 -: 23.02.2012, 17:52:02 »

Това което ми препоръчваш може би ще стане, но отново има друг проблем, дава ми грешка. Програмата казва, че неможе да намери тази библиотека, поразпитах чичо гугъл и той ми каза, че като цяло е по-добре да си сваля или по-старата версия на VC a.k.a VC 2005 или по-новата - 2008. Това не е проблем в случая, но учебника на Хр. Крушков който ползвам в момента е написан за 2006, а аз явно няма да мога да се справя с хедарите на 2008 защото са различни. Малко по-късно ще кача и скреен-шотове на ИДЕ-то. Благодаря за насоката !
Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #11 -: 23.02.2012, 18:28:53 »

Преди и аз имах същия проблем, но не бях с Visual Studio, а с CodeLite.
Ето едно алтернативно решение.
  Това вече го пробвахме вчера и не става, но благодаря ти за вниманието !
Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #12 -: 23.02.2012, 18:36:41 »

Пробвай да си направиш нов проект и в него да имаш един единствен файл, който да съдържа само това:

//Visual C++ 2005 Express

#include "stdafx.h"

#include <windows.h>

#pragma comment(lib, "user32.lib")



int _tmain(int argc, _TCHAR* argv[])

{

        SetConsoleOutputCP(1251);



        char buff[] = "Здравей свят на български!";

        CharToOemA(buff, buff);

        printf("%s", buff);



        return 0;

}

Според http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296 това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

Никога не съм имал инсталирано VC и не мога да пробвам за да ти дам по-смислени идеи. Мисля, си че ще получиш по-точни насоки ако качиш тук един screenshot на IDE-то и конзолата с омазаната кирилица. Така ще се спестят доста уточняващи въпроси.
Ето и снимки, дано да съм качил ИДЕ-то а не нещо друго, защото знам какво означава като абривиатура ИДЕ, ама дали е това което съм качил ти ще кажеш...


Активен

hypocritic

  • Неактивен Неактивен
  • Публикации: 8
Re:Малко помощ за С++
« Отговор #13 -: 23.02.2012, 18:39:14 »

Пробвай да си направиш нов проект и в него да имаш един единствен файл, който да съдържа само това:

//Visual C++ 2005 Express

#include "stdafx.h"

#include <windows.h>

#pragma comment(lib, "user32.lib")



int _tmain(int argc, _TCHAR* argv[])

{

        SetConsoleOutputCP(1251);



        char buff[] = "Здравей свят на български!";

        CharToOemA(buff, buff);

        printf("%s", buff);



        return 0;

}

Според http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296 това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

Никога не съм имал инсталирано VC и не мога да пробвам за да ти дам по-смислени идеи. Мисля, си че ще получиш по-точни насоки ако качиш тук един screenshot на IDE-то и конзолата с омазаната кирилица. Така ще се спестят доста уточняващи въпроси.
Ето и снимки, дано да съм качил ИДЕ-то а не нещо друго, защото знам какво означава като абривиатура ИДЕ, ама дали е това което съм качил ти ще кажеш...



Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page
Re:Малко помощ за С++
« Отговор #14 -: 23.02.2012, 19:11:22 »

Стават си повечето съвети, но изпускат една малка подробност - не ти е настроен шрифта, което ти го и казаха по-горе. За ХР, като стартираш първият път програмата, даваш на титъл бара Properties - Fonts - Lucida Console (обикновено някоя програма го сменя). В Regional Settings задаваш Language for Non Unicode Programs - Cyrillic или Win1251 не помня какво беше точно;

Ето ти шотче:



На титъл бара - дето пише C:\> и d:\Temp\.....  в моят пример, там натискаш с десен бутон и Properties...

Ето и програмата:

#include <iostream>
#include <stdio.h>
#include <windows.h>   
using namespace std;

int main()
{
    SetConsoleOutputCP(1251);   
   cout << "Вече имаме и кирилица... Ура, ура!" << endl;
   system("Pause");
   return 0;
}

« Последна редакция: 23.02.2012, 19:19:19 от Светослав Енков »
Активен

ascaron50

  • Неактивен Неактивен
  • Публикации: 13
Re:Малко помощ за С++
« Отговор #15 -: 08.08.2012, 12:56:04 »

къде има коктейл бар , близо до фми-то  ?
Активен

Светослав Енков

  • Неактивен Неактивен
  • Публикации: 1864
    • Shark's Home Page
Re:Малко помощ за С++
« Отговор #16 -: 09.08.2012, 11:52:01 »

В него С++ ли желаете да Ви сервират? Темата е за С++...

Активен

ascaron50

  • Неактивен Неактивен
  • Публикации: 13
Re:Малко помощ за С++
« Отговор #17 -: 09.08.2012, 19:18:34 »

брех вие сте били много изобретателни C++ коктейл :D
а ако съм с информатика мога ли да си поръчам от другите коктейли примерно математически квадратно уравнен коктейл ?
Активен

Емил Дойчев

  • Неактивен Неактивен
  • Публикации: 278
Re:Малко помощ за С++
« Отговор #18 -: 09.08.2012, 23:48:09 »

ascaron50, защо пълниш една смислена тема с боза? Светльо Енков се опита да не бъде груб, което явно се оказа без особен ефект при теб.

Вземи да прочетеш това преди да напълниш още нещо с глупости.

Подобен род въпроси предполагам подхождат повече на форума Public.
Активен