argon bulletin board

Факултети => Факултет по математика и информатика => Темата е започната от: hypocritic в 22.02.2012, 15:09:25

Титла: Малко помощ за С++
Публикувано от: hypocritic в 22.02.2012, 15:09:25
Здравейте,
Решавам задачи на С++ от учбник, но немога да използвам кирилица. С други думи когато решавам елементарни задачки си пиша във cin ili cout "нещо на кирилица", а когато стартирам компилаторът ми излиза !@#%$#%#$^ а.к.а. нещо като гръцка азбука. Може ли някой да ми помогне и да ми каже как да си направя програмата така, че да показва българските буквички?   :roll:
Титла: Re:Малко помощ за С++
Публикувано от: Емил Дойчев в 22.02.2012, 17:01:02
По спомени... проблемът би трябвало да ти е в настройките на конзолата. Опитай се да смениш encoding-a на конзолата - на utf-8, windows-1251 или cp1251 (конзолата е онова нещо в което ти излиза резултата).

Ако конзолата ти е част от IDE-то - търси настройките там. Ако ползваш Command Prompt на Windows - настройваш него. Ако ползваш linux - нямам идея.
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 22.02.2012, 17:39:17
Благодаря за помоща, но ако можеж да доуточниш къде точно се намират настроиките на тия IDE-тат и прочие,...
Титла: Re:Малко помощ за С++
Публикувано от: Емил Дойчев в 22.02.2012, 17:47:42
Аз не пиша на C++ от 10 години и не съм актуален.

Но ако кажеш с какво IDE работиш предполагам, че някой колега може да ти помогне повече.
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 22.02.2012, 17:51:30
microsoft visual c++ 2006
Титла: Re:Малко помощ за С++
Публикувано от: Емил Дойчев в 22.02.2012, 18:07:42
Докато някой ти даде смислен отговор можеш да видиш това: http://www.cplusplus.com/forum/windows/9797/ (http://www.cplusplus.com/forum/windows/9797/)

Edit:
До колкото схващам ключа е:
SetConsoleOutputCP(CP_UTF8);
Титла: Re:Малко помощ за С++
Публикувано от: Светослав Енков в 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 низове ли ползва...
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 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 и прочие, аз съм просто кандидат-студент ... :(
Титла: Re:Малко помощ за С++
Публикувано от: Емил Дойчев в 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 (http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296) това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

Никога не съм имал инсталирано VC и не мога да пробвам за да ти дам по-смислени идеи. Мисля, си че ще получиш по-точни насоки ако качиш тук един screenshot на IDE-то и конзолата с омазаната кирилица. Така ще се спестят доста уточняващи въпроси.
Титла: Re:Малко помощ за С++
Публикувано от: Таньо Иванов в 23.02.2012, 08:33:11
Преди и аз имах същия проблем, но не бях с Visual Studio, а с CodeLite.
Ето едно алтернативно решение (http://e-uroci.net/2010/10/30/%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BD%D0%BE-%D0%B8%D0%B7%D0%B2%D0%B5%D0%B6%D0%B4%D0%B0%D0%BD%D0%B5-%D0%BD%D0%B0-%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%B8%D1%86%D0%B0-%D0%B2-c/).
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 23.02.2012, 17:52:02
Това което ми препоръчваш може би ще стане, но отново има друг проблем, дава ми грешка. Програмата казва, че неможе да намери тази библиотека, поразпитах чичо гугъл и той ми каза, че като цяло е по-добре да си сваля или по-старата версия на VC a.k.a VC 2005 или по-новата - 2008. Това не е проблем в случая, но учебника на Хр. Крушков който ползвам в момента е написан за 2006, а аз явно няма да мога да се справя с хедарите на 2008 защото са различни. Малко по-късно ще кача и скреен-шотове на ИДЕ-то. Благодаря за насоката !
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 23.02.2012, 18:28:53
Преди и аз имах същия проблем, но не бях с Visual Studio, а с CodeLite.
Ето едно алтернативно решение (http://e-uroci.net/2010/10/30/%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%BD%D0%BE-%D0%B8%D0%B7%D0%B2%D0%B5%D0%B6%D0%B4%D0%B0%D0%BD%D0%B5-%D0%BD%D0%B0-%D0%BA%D0%B8%D1%80%D0%B8%D0%BB%D0%B8%D1%86%D0%B0-%D0%B2-c/).
  Това вече го пробвахме вчера и не става, но благодаря ти за вниманието !
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 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 (http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296) това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

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


(http://img401.imageshack.us/img401/7198/54328217.th.png) (http://imageshack.us/photo/my-images/401/54328217.png/)
Титла: Re:Малко помощ за С++
Публикувано от: hypocritic в 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 (http://forums.data.bg/index.php?showtopic=1172004&view=findpost&p=8183296) това трябва да работи. Предполагам, че работи само ако конзолата ти е част от IDE-то - т.е. не е Command Prompt-a.

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


(http://img401.imageshack.us/img401/7198/54328217.th.png) (http://imageshack.us/photo/my-images/401/54328217.png/)
(http://img687.imageshack.us/img687/6062/23588179.th.png) (http://imageshack.us/photo/my-images/687/23588179.png/)
Титла: Re:Малко помощ за С++
Публикувано от: Светослав Енков в 23.02.2012, 19:11:22
Стават си повечето съвети, но изпускат една малка подробност - не ти е настроен шрифта, което ти го и казаха по-горе. За ХР, като стартираш първият път програмата, даваш на титъл бара Properties - Fonts - Lucida Console (обикновено някоя програма го сменя). В Regional Settings задаваш Language for Non Unicode Programs - Cyrillic или Win1251 не помня какво беше точно;

Ето ти шотче:

(http://enkov.com/downloads/CYRILIIC_CPP.png)

На титъл бара - дето пише 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;
}

Титла: Re:Малко помощ за С++
Публикувано от: ascaron50 в 08.08.2012, 12:56:04
къде има коктейл бар , близо до фми-то  ?
Титла: Re:Малко помощ за С++
Публикувано от: Светослав Енков в 09.08.2012, 11:52:01
В него С++ ли желаете да Ви сервират? Темата е за С++...

Титла: Re:Малко помощ за С++
Публикувано от: ascaron50 в 09.08.2012, 19:18:34
брех вие сте били много изобретателни C++ коктейл :D
а ако съм с информатика мога ли да си поръчам от другите коктейли примерно математически квадратно уравнен коктейл ?
Титла: Re:Малко помощ за С++
Публикувано от: Емил Дойчев в 09.08.2012, 23:48:09
ascaron50, защо пълниш една смислена тема с боза? Светльо Енков се опита да не бъде груб, което явно се оказа без особен ефект при теб.

Вземи да прочетеш това (https://forum.uni-plovdiv.net/index.php?topic=2233#top) преди да напълниш още нещо с глупости.

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