Arquivos da categoria: C++

C++ – QtCreator + Mac OSX + SFML

Olá,

Recentemente criei um projeto no github onde irá facilitar a vida de muita gente.

Quem desenvolve jogos, sabe que é chato ficar configurando a IDE e também as bibliotecas e pensando nisso, criei um repositório onde quem usa a biblioteca Qt poderá facilmente fazer um clone desse repositório e sair usando a SFML independente da plataforma, seja Mac, Linux ou Windows.

 

Mas no que isso irá me ajudar?

Se você desenvolve em C++ e usa a SFML, basta você baixar o QtCreator (http://qt.nokia.com/downloads) que é gratuito e logo após instalar o QtCreator, faça um clone do projeto (https://github.com/prsolucoes/sfml-project) em uma pasta qualquer, abra o arquivo .pro e clique em “Run” no QtCreator e o projeto já estará configurado e funcionando.

 

O que foi implementado?

1 – Configuração independente de plataforma (windows, linux e mac)
2 – Código básico de teste de uma aplicação com SFML
3 – Todos os arquivos de include e lib para cada plataforma
4 – Ícone padrão para seu aplicativo – basta mudar o arquivo na pasta “resources” e recompilar
5 – Nome do binário gerado também é configurável
6 – As configurações do projeto são definidas em um único arquivo “sfml-project.pro”

Para baixar o projeto, acesse:
https://github.com/prsolucoes/sfml-project

Espero poder facilitar a vida de todos assim.

Obrigado!

C++ – Separando ou explodindo uma String

Olá pessoal,

Vejo muitas pessoas com dúvida em relação a como fazer um split ou explodir uma string em partes usando um delimitador.

Vou então mostrar algumas técnicas possíveis de executar isso.

Vamos usar uma frase de exemplo:

O rato roeu a roupa do rei de roma.

Nossa intenção é separar cada palavra contida na frase usando o caracter [espaço] como delimitador e com isso ter uma lista em memória com todas as palavras encontradas.

Vou mostrar agora 3 métodos de fazer isto em C++ de forma prática e fácil.

1 – Se você usa a biblioteca Boost, use o código abaixo para em 3 linhas obter um vetor de strings com as palavras:

#include <boost/algorithm/string.hpp>
int main()
{
    vector<string> results;
    boost::split(results, line, boost::is_any_of(";"));
}

2 – Usando agora uma função antiga para saber o ponteiro na string de onde começa cada palavra:

#include
#include 

int main() {
    char s[] = "one, two,, four , five,"; /* mutable! */ const char* p;
    for (p = strtok( s, "," ); p; p = strtok( NULL, "," )) {
        printf( "\"%s\"\n", p );
    }
    return 0;
}

3 – E por último, uma função simples que funciona basicamente como o método #1:

#include 
#include 

void split(string str, string separator, vector* results)
{
    int found;
    found = str.find_first_of(separator);

    while(found != string::npos)
    {
        if(found > 0)
        {
            results->push_back(str.substr(0,found));
        }
		
        str = str.substr(found+1);
        found = str.find_first_of(separator);
    }

    if(str.length() > 0)
    {
        results->push_back(str);
    }
}

int main()
{
    vector results;
    split("O rato roeu a roupa do rei de roma", " ", &results);
}

É isso ai. Espero que com estes códigos um pouco simples, ajudem a todos.