Ir para conteúdo
Fórum Script Brasil

Nicolas Tatico

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que Nicolas Tatico postou

  1. Preciso de ajudar nessa atividade. Faça um programa, em linguagem C, que lê 5 frases, informadas pelo o usuário, de, no máximo, 50 caracteres cada uma e armazene-as em um arquivo. Mas, antes de gravar cada frase no arquivo, é necessário converter todas as suas letras para maiúsculas. O nome do arquivo será fornecido, via teclado, pelo usuário. A seguir, feche o arquivo. Reabra o arquivo, para leitura, exibindo na tela todas as frases convertidas. Estou com problema no primeiro fgets, sempre que rodo estora um erro que não sei como arrumar, podem me ajudar? #include <stdio.h> #include <ctype.h> #include <stdlib.h> #include <wchar.h> int main() { FILE*farq; int i, j; char texto[51]; char maiusc[51]; char nomearq[20]; int num; errno_t err; printf("\n\nDigite o nome do arquivo a ser criado: "); scanf_s("%c", &nomearq); err = fopen_s(&farq, nomearq, "w"); //verifica o arquivo se igual a vazio if (err == NULL) { fprintf(stderr, "Erro ao abrir o arquivo!"); exit(EXIT_FAILURE); } //contador das frases for (i = 0; i < 6; i++) { printf("\n\nDigite uma frase com 50 caracteres máximo: "); scanf_s("%c", &texto); if(fgets(texto, sizeof(texto), farq) != NULL); { puts(texto); } j = 0; while (texto[j] != '\0' && j < 50) { maiusc[j] = toupper(texto[j]); // converte os caracteres para maiúscula j++; } maiusc[j] = '\0'; fwrite(&num, sizeof(int), 1, farq); //Grava o tamanho do texto fwrite(maiusc, sizeof(char), num, farq); //Grava o texto } fclose(farq); err = fopen_s(&farq, nomearq, "r"); if (err == NULL) { fprintf(stderr, "Erro ao abrir o arquivo!");; exit(EXIT_FAILURE); } fread(&num, sizeof(int), 1, farq); // lê o tamanho do texto fread(texto, sizeof(char), num, farq); // lê o texto gravado while (!feof(farq)) { printf("\n\nTexto Lido: %s", texto); memset(texto, '\0', 50); fread(&num, sizeof(int), 1, farq); // lê o tamanho do texto fread(texto, sizeof(char), num, farq); // lê o texto gravado } fclose(farq); system("pause"); return 0; }
  2. Boa noite, estou realizando uma atividade da faculdade estou com um problema na hora de passar a informacao de qual produto o cliente selecionou. Segue o fonte: # include <stdio.h> # include <stdlib.h> # include <locale.h> # include <string.h> int main() { setlocale(LC_ALL, ""); // Acentuação em português // declaração de variáveis int opcao, indice = 0; float qtd, total = 0; float pedido[99][3]; char produto[7][20]{"Hot-Dog","X-Salada","X-Bacon","Misto","Salada","Água","Refrigerante"}; // Menu de Opções system("cls"); printf("ITEM PRODUTO CÓDIGO VALOR UNITÁRIO\n"); printf("1 Hot-Dog 100 5,00 R$\n"); printf("2 X-Salada 101 8,79 R$\n"); printf("3 X-Bacon 102 9,99 R$\n"); printf("4 Misto 103 6,89 R$\n"); printf("5 Salada 104 4,80 R$\n"); printf("6 Água 105 3,49 R$\n"); printf("7 Refrigerante 106 4,99 R$\n"); do // Escolha dos pedidos { printf("\nEscolha um item : "); scanf_s("%d", &opcao); if (opcao >= 1 && opcao <= 7) { do{ printf("Quantidade : "); // Quantidade desejada do item scanf_s("%f", &qtd); } while (qtd <= 0); } switch (opcao) // Montagem da lista de pedidos { case 1: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 5.00; produto[indice][0]; indice++; break; case 2: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 8.79; produto[indice][1]; indice++; break; case 3: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 9.99; produto[indice][2]; indice++; break; case 4: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 6.89; produto[indice][3]; indice++; break; case 5: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 4.80; produto[indice][4]; indice++; break; case 6: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 3.49; produto[indice][5]; indice++; break; case 7: pedido[indice][0] = opcao; pedido[indice][1] = qtd; pedido[indice][2] = 4.99; pedido[indice][] = ("Refrigerante"); indice++; break; } } while (opcao >= 1 && opcao <= 7); system("cls"); // Impressão do relatório de pedidos printf("Relatório dos Pedidos\n"); printf("\nITEM PRODUTO QTDE PREÇO VALOR\n"); for (int j = 0; j < indice; j++) { printf("%.1f %s %.1f %.2f %.2f\n", pedido[j][0], produto[j], pedido[j][1], pedido[j][2], (pedido[j][1] * pedido[j][2])); total = total + (pedido[j][1] * pedido[j][2]); } printf("\n\nValor Total do Pedido %.2fR$\n\n", total); // Impressão do valor total dos pedidos system("pause"); return 0; } no for (int j = 0; j < indice; j++) { printf("%.1f %s %.1f %.2f %.2f\n", pedido[j][0], produto[j], pedido[j][1], pedido[j][2], (pedido[j][1] * pedido[j][2])); total = total + (pedido[j][1] * pedido[j][2]); o produto[j] esta sempre vindo com indice informado, ou seja, se realizei o pedido numero 7, ele esté me trazendo produto 1 que é o hot dog e não o refrigerante. Alguém consegue me orientar? http://prntscr.com/tti1s9 (print de como é a saida)
×
×
  • Criar Novo...