Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

Directories constructed as a tree in C

Name: Anonymous 2013-10-30 13:11



#include<stdio.h>
#include <string.h>
int main()
{
 /*The output file*/
FILE *fo;

/*The input file*/
FILE *fi;

/*The current character we are on*/
char c[2];
c[1]=0;

/*The array to build the word we are on*/
char *s=malloc(900000);

/* Opens the file for reading */
fi=fopen("d.txt","r");
c[0]=getc(fi);
/* While loop responsible for reading current character,
 creating the string of directories linked to that character
 , and placing the word at the end*/
while(c[0]!=EOF)
{
strcat(s,"lib\\");
/*While loop that checks the current char for a space or a newline*/
    while((c[0]!=' '&&c[0]!='\n'))
    {


       strcat(s,c);

    strcat(s,"\\");
 c[0]=getc(fi);
    }
    printf(s);
    /*Makes the directory following the string of characters (IE: Character would be c\h\a\r\a\c\t\e\r)*/
    mkdir(s);

    s=malloc(9000);
c[0]=getc(fi);

}


return 0;
}

The new problem that I am encountering is most likely due to my allocation of memory, as when I get to the printf statement that prints out the composed string, I get lib\a\a\r\d\v\a\r\k\% where the % sign represents any ascii character, selected at random(probably due to some data that was at the ending of the string). How do I fix this problem?

Name: Anonymous 2013-11-03 20:51

>>26
Lambda, no one cares if a program crashes. No one. If it works well enough in 51% of the test cases, it's time to ship. The world has moved on and you're an anachronism from an era that is best forgotten. Computers are just tools - tools to make money. Stability is the OS's job and execution speed is left up to the hardware monkeys. Any time that is wasted on rigid adherence to the standard is time that could have been spent adding new features and increasing value.

You'd do well to remember that.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List