LINUX.ORG.RU

строки


0

0

память выделяю парвильно, все без ошибок, просто не выводит файл построчно
pFile = fopen ("myfile.txt","rb");
    fseek (pFile, 0, SEEK_END);
    siz=ftell (pFile);
    printf ("Size %ld\n",siz);
    buf = buffer = (char*) malloc (sizeof(char)*siz);
  for (; i < siz; ++i){
    if ('\n' == buffer[i])
        else
        if ('\r' == buffer[i]);
        else
        strcmp(buffer,buf);
   printf("%s",buf );
    }
счетчик просто считает байты и все(
почему не печатается срока?
--------------
заранее благодарен.
anonymous

во-первых не понятно где инициализируется i. Во-вторых просьба разъяснить сакральный смысл строки "strcmp(buffer,buf);". Если имеется в виду strcat, buffer ещё надо обнулить (т.е. написать buffer[0] = 0). И ещё надо +1 байт выделять в malloc-е.

И sizeof(char) всегда равен 1, не надо его писать.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

 FILE * pFile;
  long siz;
  char * buffer[0]={0};// <- на такую инициализацию ошибка 
  char * buf;
  int i =0;
  pFile = fopen ("myfile.txt","rb");
    fseek (pFile, 0, SEEK_END);
    siz=ftell (pFile);
    printf ("Size %ld\n",siz);
//и потом несовпадение типов тут -> 
    command = buffer = (char*) malloc (/*sizeof(char)*/1*siz+1);
  if (pFile==NULL) perror ("Error opening file");
  else{
  for (; i < siz; ++i){
    if ('\n' == buffer[i])
        }else{
        }if ('\r' == buffer[i]){
          }else{
           strcmp(buffer,buf);
           printf("%s",buf );
           }
     }
  }//for
 }

anonymous
()
Ответ на: комментарий от anonymous

а как вывести построчно?
прочитал 1 строку, вывел, прочитал другую... итд?
спс/

anonymous
()

Потому что printf -- буфуризованная функция. Она выводит всю строку только после \n. Этот режим можно настроить (забыл как :( ). Или использовать write.

anonymous
()
Ответ на: комментарий от anonymous

еще один студент...

>char * buffer[0]={0};// <- на такую инициализацию ошибка

открываем книгу на главе по объявлению переменных

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.