Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

347
Visualizações
falla de segmentación de strtok, solo da una falla de segmentación cuando la primera línea del archivo de entrada está en blanco

Estoy usando AIX. Hay varias publicaciones de fallas de segmentación con strtok pero no pude encontrar ninguna que me ayude.

Estoy escribiendo un programa ac y quiero leer un archivo en el programa y luego ordenar esta línea (solo necesito los minutos y los segundos al final de la segunda línea).

aquí hay un fragmento de mi código:

 FILE *timeFile; int x, timeElapsed; char line[1000], *temp; int main() { x = 0; timeFile= fopen("time.txt", "r"); if(timeFile==NULL) { printf("\nerror opening file time.txt\n"); printf("\nPlease update system time manually\n"); return 1;//error } while( x<10 && fgets(line, sizeof(line), timeFile)!= NULL) { if( x==1 )//we need data from the second line { temp = strtok(line, " "); printf("\nline: %s",line);//the Output here is as expected 'line: real' printf("\ntemp: %s",temp);//the error occurs here at temp break; } x++; } }

El archivo que estoy tratando de leer tiene esto dentro:

 real 0m1.25s user 0m0.09s sys 0m0.02s

La primera línea está en blanco (creo que solo es un carácter de retorno) y 'real 0m1.25s' es la segunda línea. Quiero leer sólo la segunda línea. El error ocurre cuando trato de leer la variable temporal.

Lo gracioso es que he usado casi el mismo código para el mismo trabajo en otro programa y funcionó. La única diferencia era que en el archivo de entrada del proyecto anterior no había líneas en blanco ni tabulaciones. Así que estoy confundido por favor ayuda.

PD: estoy usando un teclado alemán, por lo que escribe en mayúsculas las palabras por sí solo, lo siento.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Utilice sscanf() en su lugar. Trate de evitar strtok() a toda costa a menos que sea absolutamente necesario.

Aquí hay un enlace a la fuente que puede resultarle útil.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda