Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstring>
- #include <cstdio>
- #include <cstdlib>
- int strToLines(char**lines,char*input)
- {
- int i = 0;
- int maxsz = 1;
- int len = 0;
- char * de = (char*)malloc(maxsz*sizeof(char));
- int maxszl = 1;
- int lenl = 0;
- lines = (char**)malloc(maxszl*sizeof(char*));
- while(input[i])
- {
- char c = input[i++];
- if(c == '\n')
- {
- de[len]=0;
- lines[lenl++] = de;
- if(lenl >= maxszl-1)
- {
- lines = (char**)realloc(lines,sizeof(char*)*maxszl*2);
- maxszl*=2;
- }
- maxsz = 1;
- len = 0;
- de = (char*)malloc(sizeof(char)*maxsz);
- }else
- {
- de[len++] = c;
- if(len >= maxsz-1)
- {
- de = (char*)realloc(de,sizeof(char)*maxsz*2);
- maxsz *=2;
- }
- }
- i++;
- }
- de[len]=0;
- lines[lenl++] = de;
- return lenl;
- }
- char * readEntireFile(char * fname)
- {
- int maxsz = 1;
- int len = 0;
- char * str = (char*)calloc(sizeof(char),maxsz);
- char b[33];
- b[32]=0;
- int camt;
- FILE * f = fopen(fname,"r");
- while(camt=fread(b,1,32,f)){
- len += camt;
- while(len >= maxsz-1){
- str=(char*)realloc(str,sizeof(char)*maxsz*2);
- maxsz *=2;
- }
- strcat(str,b);
- }
- str[len]=0;
- fclose(f);
- return str;
- }
- int main()
- {
- char * str = readEntireFile("test.cpp");
- char ** lines;
- int l = strToLines(lines,str);
- free(str);
- for(int i = 0; i < l; i++)
- {
- printf("%s\n",lines[i]);
- free(lines[i]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement