Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

é possivel juntar C pra inicar o jogo do Python

é possivel junta as linguagem de programação o C seria pra iniciar os jogos do Python e como seria ? No momento sei usar Java e futuramente vou Pra o c , c++ existe essa possiblidade de junta essa linguagem pra executar uma função sobre outra linguagem ?

4 respostas

Oii Daniel, como você está?

Sinto muito pela demora em obter um retorno.

É possível sim e uma solução bem simples para isso é utilizar a função system do C. Com ela, você irá dizer o comando que deseja executar no prompt/terminal e através disso iremos dizer qual o arquivo python queremos executar. Por exemplo:

Arquivo.c

#include <stdio.h>

int main(){
    printf("Executando um programa Python dentro de um arquivo C.\n");
    system("python datas.py");
    return 0;
}

Arquivo datas.py

class Data:
    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def data_formatada(self):
        print(self.dia, self.mes, self.ano, sep='/')

print("\nArquivo Python")
d = Data(24, 7, 2000)
d.data_formatada()

Resultado:

resultado

Observação: É necessário que o comando python esteja no path de variáveis do sistema no caso do Windows, ou seja, no momento da instalação do Python deverá marcar a opção de Add Python to Path:

EUWpBCbXgAEf8tz

Caso não esteja, neste link há o passo a passo de como configurar manualmente o path.

Qualquer dúvida estou por aqui, tá bom?

Abraços!

Ual gostei da explicação mais assim é possível passar informação entre eles ? vamos dizer que no C eu mande um oi pela String como posso receber no pyton essa String ?

solução!

Daniel, é possível sim. Como estamos utilizando o comando "system" que é responsável por executar alguma instrução na linha comando, podemos passar esse parâmetro(string) do C para o Python também através do "system".

Para isso, iremos utilizar um recurso chamado sys.argv no Python, responsável por pegar os parâmetros que passamos na execução do arquivo python. Muita informação? Calma, no exemplo ficará mais claro hahaha

No código em C abaixo, pedimos o usuário para digitar uma frase e após isso, concatenamos essa frase com o comando de execução de um arquivo em python, por exemplo: "python arquivo.py ola mundo", onde a string "ola mundo" é passada para o programa Python como argumento. Veja como fica em código (observe os comentários):

Aquivo.c


#include <stdio.h>

int main(){
    char frase[50];
    char comandoCompleto[100];
    printf("Executando um programa Python dentro de um arquivo C.\n");
    printf("Digite uma frase: \n");
    scanf("%[^\n]", frase); // Para pegar uma frase com espaços

    snprintf(comandoCompleto, 100, "python arquivo.py %s", frase); // concatena a frase recebida com o comando para executar o arquivo python

    system(comandoCompleto); // executa o arquivo python
    return 0;
}

Aquivo.py


import sys

print("\nArquivo Python - Frase recebida do arquivo em C")
for arg in sys.argv[1:]: # começa do valor 1 para retirar o nome do arquivo e pegar apenas os parâmetros passados 
    print(arg, end=" ")

Resultado:

image

Vale lembrar que dessa forma que te mostrei tanto na primeira resposta quanto na de agora, estamos utilizando o comando "system" da linguagem C, que é responsável por executar instruções na linha de comando, ou seja, estamos utilizando a linguagem C apenas como intermediária para executar por baixo dos panos alguma instrução da linha de comando que irá executar o programa em Python.

Também adiciono aqui algumas leituras sobre o assunto:

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!

Muito obgd :) agora sim sei por onde começar estudar pra fazer comunicação entre linguagens :)