Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

fgets
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=12928
Страница 1 от 1

Автор:  tty@ [ Пет Май 16, 2014 11:36 pm ]
Заглавие:  fgets

Дайте идея как да се убие "\n" от празна линия:

Код:
#include <stdio.h>

int main()
{   FILE *fp;
   char str[60];

   fp = fopen("file.data" , "r");
   if(fp == NULL) {
      perror("Error opening file");
      return(-1);
   }
   fgets (str, 60, fp);strtok(str,"\n");
   printf ("<%s>",str);
   fgets (str, 60, fp);strtok(str,"\n");
   printf ("<%s>",str);
   fgets (str, 60, fp);strtok(str,"\n");
   printf ("<%s>",str);
   fclose(fp);
   
   return(0);
}


Вариант 1 - > file.data съдържа:
Цитат:
1 2
3 4
5 6



Изход:
<1 2><3 4><5 6>

Ако обаче на входа file.data съдържа:
Цитат:
1 2

5 6

Изход:
<1 2><
><5 6>

Остава "\n" {0x0A}.

Автор:  tty@ [ Съб Май 17, 2014 12:07 am ]
Заглавие:  Re: fgets

Мда извиянявам се за шума :idea:
strtok(str,"\n"); Се заменя с:
*(strchr(str, '\n')) = '\0';

Автор:  woody [ Съб Май 17, 2014 10:55 am ]
Заглавие:  Re: fgets

Така ще ти гръмне когато нямаш LF в прочетения стринг и strchr() върне нулев указател.

Автор:  tty@ [ Съб Май 17, 2014 12:43 pm ]
Заглавие:  Re: fgets

Цитат:
Така ще ти гръмне когато нямаш LF в прочетения стринг и strchr() върне нулев указател.


10x.
Има предпазител. Няма да се взривява.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/