如何在c ++中为指定的文本着色

时间:2016-12-29 17:35:32

标签: c++ colors

如何在c ++中为特定文本着色?喜欢: 这个示例。 在上面我想要颜色"是"。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

“C ++是一种语言”......说“如何在c ++中播放声音或在c ++中添加声音”本身并没有意义。要播放声音,您需要一个操作系统API。所以会发生什么:使用C ++,您可以访问操作系统API(特定于Windows,Mac,Linux),然后播放声音。

但是,操作系统API周围有解决方案(包装器)可以让您更轻松地完成这项工作。例如,SDL Framework与平台无关,因为它将为您处理操作系统。 (适用于Windows,Mac,Linux等)

这是使用SDL2 Framework播放声音的示例。看一下this code example for SDL 2(没有SDL_mixer)或this tutorial for SDL 1.2(它具有与音频部分相同的功能):

static Uint8 *audio_chunk;
static Uint32 audio_len;
static Uint8 *audio_pos;

/* The audio function callback takes the following parameters:
   stream:  A pointer to the audio buffer to be filled
   len:     The length (in bytes) of the audio buffer
*/
void fill_audio(void *udata, Uint8 *stream, int len)
{
    /* Only play if we have data left */
    if ( audio_len == 0 )
        return;

    /* Mix as much data as possible */
    len = ( len > audio_len ? audio_len : len );
    SDL_MixAudio(stream, audio_pos, len, SDL_MIX_MAXVOLUME);
    audio_pos += len;
    audio_len -= len;
}

/* Load the audio data ... */

;;;;;

audio_pos = audio_chunk;

/* Let the callback function play the audio chunk */
SDL_PauseAudio(0);

/* Do some processing */

;;;;;

/* Wait for sound to complete */
while ( audio_len > 0 ) {
    SDL_Delay(100);         /* Sleep 1/10 second */
}
SDL_CloseAudio();

同样,这只是一个例子。也许你只想播放一个“wave”文件而不用担心wave缓冲等等......

例如,在Windows上,您具有PlaySound()功能。有了这个,你可以给出文件名(.wav),就是这样。 https://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v=vs.85).aspx

对于其他平台,可能存在类似的东西......祝你好运; - )

答案 1 :(得分:1)

您无法在标准 C++14中执行此操作(播放声音),因为该标准不了解与声音相关的内容。您需要一些额外的(通常是特定于操作系统的)库,例如SFMLQt;两者都可以在多个系统上运行,并且正在抽象operating-system特定服务。

如果您使用ANSI escape codes到终端,可以尝试BELL character

请注意,您的用户可能甚至没有任何方式可以听到声音(例如,他的计算机或聋人用户上没有 - 或残疾人)。