Ir para conteúdo
Fórum Script Brasil
  • 0

Ler uma string em um arquivo e identificar apenas 1 char


Miltonlp

Pergunta

Bom dia galera,

Sou novo aqui e iniciante em programação, gostaria de pedir uma ajuda para vocês.

É o seguinte, na verdade esse programa é bem mais complexo, mas a outra parte melhor deixar para uma outra hora.

Tenho um trabalho na faculdade que preciso fazer o seguinte:

Em um arquivo texto deve estar alguns comandos para efetuar ações dentro do programa.

É um programa para manipulação de Blocos e um comando válido, por exemplo é

Mover A acima B

minha dúvida é a seguinte, eu tenho A e B que são valores que o usuário digita no arquivo (pode ser de 1 até 25)

eu consigo ler a frase que está escrita e comparar com uma frase que eu já criei no meu programa para verificar se está do mesmo jeito, mas o problema é que não basta eu saber que o usuário digitou "Mover A acima B" eu tenho que saber qual bloco ele irá mover.

Tentei através de um índice copiar o char para outra variável mas não deu certo

Se alguém puder me ajudar por favor,

aqui está o código que eu tentei fazer


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#define cls system("cls")
#define pause system("pause")

char string[16] = "MOVER 1 ACIMA 2";
char string1[16] = "MOVER A TOPO B";

//Lê do arquivo texto a String passada
int lendo() {
int var;
FILE *f;
char s[1000];

f = fopen("teste.txt", "r");

if(!f)
return 1;
while(fgets(s,1000,f) != NULL)
//printf("%s", s);
fclose(f);

//Deixa em maiúscula a String que foi lida do arquivo para que possamos
//trabalhar com ela de forma que não haja diferença entre maiúscula e minus
for (int i = 0; i <= strlen(s); i++) {
s[i] = toupper(s[i]);
}

//Tentativa de comparação do valor que há nessa posição na string
//Minha intenção nesse código foi comparar se a string que está no arquivo é igual a que foi declarada no começo
//Se for igual, ele copia o char que está na posição 6 para a variável char, se der certo, posso trabalhar em cima dessa
//variável var que recebeu o valor
if (!strcmp(s, string)) {
var = s[6];
printf("\n%d", var);
}

return 0;
}

main()
{
int op;
do {
cls;
printf("1 - Ler conteudo do arquivo\n");
printf("2- Sair\n");
scanf("%d", &op);
switch (op) {
case 1:
lendo();
printf("\n");
pause;
write();
break;
case 2:
break;
}
}while (op != 2);
}

[/codebox]

Consigo ler a variável corretamente mas não consigo converter esse char para um valor inteiro.

Quando mando imprimir na tela mostra um valor diferente (49) quando tenho 1 na posição.

Tente fazer a conversão com a função atoi, mas não deu certo.

Alguém sabe uma forma aleatória de fazer isso?

Editado por Miltonlp
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...