Ir para conteúdo
Fórum Script Brasil

bruce845

Membros
  • Total de itens

    81
  • Registro em

  • Última visita

Tudo que bruce845 postou

  1. uma outra função que costumo a usar para exibir na tela somente string é a puts() (está na cstdio em C++ ou stdio.h em C). puts("Alo mundo!"); Mas ela exibe somente string! Mas acho que as funções de C são mais práticas! Comparação: #include <cstdio> #include <conio.h> #define NOME_MAX 30 int main(void) { char nome[NOME_MAX]; puts("Escreva o seu nome:"); fgets(nome,NOME_MAX,stdin); printf("O seu nome e: %s\n",nome); getch(); // Inclua a biblioteca conio.h para usar esse comando. return 0; } Agora com o padrão de C++ (sem os limitadores de string no cin): #include <cstdio> #include <iostream> #include <conio.h> #define NOME_MAX 30 using namespace std; // Esse comando não é necessário com o uso das funções de C. int main(void) { char nome[NOME_MAX]; cout<<"Escreva o seu nome:"<<endl; cin>>nome; cout<<"O seu nome e:"<<nome<<endl; getch(); // Inclua a biblioteca conio.h para usar esse comando. return 0; } O getch() aguarda você pressionar uma tecla, ao contrário do system("PAUSE"), não exibe nenhuma mensagem na tela! Inclua a biblioteca conio.h (bibliotecas de C podem ser incluídas em C++) para usar a função.
  2. bruce845

    Problemas com struct...

    Amigo, o erro mais grave seu foi do seu fscanf e fprintf estar com atributo parar ler string (%s) em uma variavel float (%f). Mas há mais problemas: O seu arquivo é: Quando o fscanf for ler a 1ª linha, ela lerá da seguinte maneira: fscanf(fp,"%s",&alu.nom); As funções de formatação scanf possuem um problema ao ler string: Se ela encontra um espaço ela termina a string. Ex.: A leitura da fscanf(fp,"%s",&alu.nom); gravaria em seu vetor de caracteres o seguinte: joao O resto da string ela desprezaria. E outra: a repetição (for) que você fez vai até 0, ou seja, de 0 até 0... Aí iria executar apenas uma vez, inutilizando o for. Então, para te ajudar: A função para verificar se é fim de arquivo ou não é feof() (retorna 0 caso seja fim de arquivo.) Grave a nota na outra linha, assim ficará mais fácil a leitura (separar os tipos de dados). Enquanto a linha onde têm o nome do aluno você leria do arquivo com o fgets, o nome do aluno você leria com a fscanf. Não sei se essas dicas vão te ajudar, mas.. Não esqueça de fechar o arquivo usando fclose()! No fopen() nos atributos, acrescente a letra "t" para certificar-se que abrirá um texto! Se deixar sem, alguns compiladores poderrão entender como arquivo binário! Bem, espero ter ajudado!
  3. Amigo, talvez a função sscanf() na biblioteca stdio.h (ou cstdio em C++), possa te ajudar! Use: sscanf(string,"%*c %*c %d %*c %d %*c %*c %d",a,c,x); Onde string é a variável onde está a expressão e a,c e x são as variáveis que irão receber os números! Se a string for igual a ((a + c) * x), a estrela depois do % iginora a leitura do dado. Subistitua %d por %f caso a expressão envolver números reais (float). Espero ter ajudado!
  4. Eu estou migrando de C para C++ e ainda uso e acho mais prático usar printf() ao invés de cout<< e scanf(), ao invés de cin>>. Quem programa em C++ prefere usar o quê? As funções de C (no C++ estão na biblioteca cstdio) ou os padrões de C++ (cout & cin)?
  5. Bem, já tentou com vetores? Conseguiu? tenta o seguinte: abra o arquivo (tem que ser arquivo binário) e depois use fwrite somando a qtde. de linhas com a quantidade de colunas. Ex.: char matriz[5][5]; fwrite(matriz,sizeof(matriz),10,arquivo); Para acessar a matriz salva, use o fread. fread(matriz,sizeof(matriz),10,arquivo); Não tenho certeza se funciona com matriz, mas vetor da!
  6. bruce845

    Ajuda de Arquivos em C

    Amigo, não entendi... O testo possui apenas vogais ou possui consoantes misturadas? Se houver consoantes misturadas, faça um "for" (repetição). Vá puxando caracter por caracter com fgetc e compare com o caracter puxado. int main() { FILE *vogal; char letra; int contador,numeroVogais=0; vogal = fopen("c:letras.txt","w"); if(vogal == NULL) { puts("Arquivo não pode ser aberto!"); getch(); return 1; } for(contador=1;!feof(vogal);contador++) { fscanf(vogal,"%c",letra); if(strchr("AEIOU",toupper(letra))) /* Use a funcao strchr pra comparar cada letra, toupper torna o caracter maiusculo.*/ { numeroVogais++; } } fclose(vogal); // Não esqueça de fechar o arquivo! printf("O numero de vogais e: %d",numeroVogais); getch(); return 0; } Bem, a função strchr("Caracteres a comparar",string) retorna 0 se o caracter não for igual a nenhuma das vogais. Use a função fgetc para pegar caracter por caracter do texto em questão. Espero ter ajudado!
  7. Uso de váriável global não é recomendada por muitos professores de T.I por quê? Meu professor sempre ameaça dar zero se usar, mas por quê? Tem algum problema mais sério na programação?
×
×
  • Criar Novo...