Jump to content
alex_cismas

C cat function

Recommended Posts

As vrea si eu sa stiu unde e eroarea in acest program, si de ce se blocheaza in terminal.


#include <stdio.h>
#include <stdlib.h>

#define LINE 100

/*void clear_s(char*);*/

int main(int argc, char* argv[])
{
char *s;
int i;
int c;
char car;

if (argc>2)
{
fprintf(stderr,"EROARE!");
return 1;
}
FILE *fid;
fid=fopen(argv[1],"r");
if (fid==NULL)
{
fprintf(stderr,"Nu pot sa deschid fisierul!");
return 1;
}
printf("\n %ld",ftell(fid));
while (!feof(fid))
{
i=0;
while(1)
{
fscanf(fid,"%c",&car);

if (car=='\n')
{
break;
}
i=i+1;

}

s=(char*)malloc(i*sizeof(char));

fseek(fid,-i,SEEK_CUR);
fgets(s,i,fid);
c=ftell(fid);
printf("%d ::: %s",c,s);
free(s);
getchar();
}
printf("\n");
fclose(fid);
return 0;
}
/*
void clear_s(char *s)
{
int i;
for (i=0;i<LINE;i++)
{
s[i]=0;
}
}
*/

Edited by alex_cismas
am inlocuit quote cu code
Link to comment
Share on other sites

Ai avut 18 erori...au mai ramas 2 pe care nu le gasesc

#include <stdio.h>
#include <stdlib.h>

#define LINE 100

/*void clear_s(char*);*/

int main(int argc, char* argv[]);
{
char *s;
int i;
int c;
char car;

if (argc>2);|
{
fprintf(stderr,"EROARE!");
return 1;
}
FILE *fid;
fid=fopen(argv[1],"r");
if (fid==NULL)
{
fprintf(stderr,"Nu pot sa deschid fisierul!");
return 1;
}
printf("\n %ld",ftell(fid));
while (!feof(fid));
{
i=0;
while(1);
{
fscanf(fid,"%c",&car);

if (car=='\n');
{
break;
}
i=i+1;

}

s=(char*)malloc(i*sizeof(char));

fseek(fid,-i,SEEK_CUR);
fgets(s,i,fid);
c=ftell(fid);
printf("%d ::: %s",c,s);
free(s);
getchar();
}
printf("\n");
fclose(fid);
return 0;
}
/*
void clear_s(char *s)
{
int i;
for (i=0;i<LINE;i++)
{
s[i]=0;
}
}
*/

Link to comment
Share on other sites

In linie de comanda avem gcc -o cat cat_t.c asha e salvat la mine programul,dupa care executam ./cat fisier (putem lua acelasi fisier cat). Acesta va afisa la apasarea butonului enter cate o linie pe ecran, dar nu va mai iesi din program.Dupa afisarea intregului program va afisa niste linii goale. Eroare de care nu`mi dau seama este cum sa fac sa se opreasca dupa terminarea afisarii programului.

Link to comment
Share on other sites

pai zici ca-ti da hang undeva nu? pornesti in debug si cand vezi ca s-a hang-uit(face un ciclu infinit sau ceva) il opresti si vezi exact in ce functie/ciclu/linie/fisier e in executie. Este destul de important sa inveti sa faci debug. Eu unul nu m-as putea lipsi de el. Poti folosi visual studio pe windows, am crezut ca esti pe linux cand am vazut gcc(deaia am recomandat gdb)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...