LoureiroWill
(usa Linux Mint)
Enviado em 28/10/2013 - 12:45h
Galera, me ajuda aqui com um código. Estou tentando fazer a leitura de um arquivo, que estará no seguinte formato:
exec 4000
P
read 1000
exec 200
write 10000
V
exec 2500
Caso exista esse numero após a palavra, ele irá salvar na variável duracao...e as palavras, "exec','p", "V", 'read', 'write' serão salvas na string proc.
Compila que é uma maravilha, porem, na hora de executar, dá Segmentation Fault...
Ajudem Urgente, por favor, tenho que juntar isso em outra parte pra entregar até quinta
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char c;
char s[5], t[5];
char proc[10];
char tempo[10];
int k=0, action;
int duracao;
FILE *fr;
fr=fopen("sint1.txt", "r");
while((c=getc(fr))!=EOF)
{//while para fim do arquivo
while((c=getc(fr))!='\n' || (c=getc(fr))!='{TTEXTO}')
{ //while para ler linha até o fim ou palavra até o espaço
s[k]=c;
k++;
}//while linha ou espaço
s[k]='{TTEXTO}';
strcpy(proc,s);
k=0;
if((c=getc(fr))!='\n')
{ //começo do if
while((c=getc(fr))!='\n')
{
t[k]=c;
k++;
}//while caso necessite leitura de numero
t[k]='{TTEXTO}';
strcpy(tempo, t);
k=0;
duracao=atoi(tempo);
}//fim do if
if(strcmp(proc, "exec"))
action=2;
if((strcmp(proc, "read")) || (strcmp(proc, "write")))
action=4;
if((strcmp(proc, "P")))
action=10;
if((strcmp(proc, "V")))
action=11;
printf("%d", action);
printf("%d", duracao);
}//fim do while para verificar se é fim do arquivo
}//fim da main