Отговори на тема  [ 4 мнения ] 
fgets 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 18, 2011 4:27 pm
Мнения: 6
Мнение 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}.


Пет Май 16, 2014 11:36 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 18, 2011 4:27 pm
Мнения: 6
Мнение Re: fgets
Мда извиянявам се за шума :idea:
strtok(str,"\n"); Се заменя с:
*(strchr(str, '\n')) = '\0';


Съб Май 17, 2014 12:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: fgets
Така ще ти гръмне когато нямаш LF в прочетения стринг и strchr() върне нулев указател.


Съб Май 17, 2014 10:55 am
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Ное 18, 2011 4:27 pm
Мнения: 6
Мнение Re: fgets
Цитат:
Така ще ти гръмне когато нямаш LF в прочетения стринг и strchr() върне нулев указател.


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


Съб Май 17, 2014 12:43 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 4 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни