Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const char *readLine(FILE *file) {
- if (file == NULL) {
- printf("Error: file pointer is null.");
- exit(1);
- }
- int maximumLineLength = 128;
- char *lineBuffer = (char *)malloc(sizeof(char) * maximumLineLength);
- if (lineBuffer == NULL) {
- printf("Error allocating memory for line buffer.");
- exit(1);
- }
- char ch = getc(file);
- int count = 0;
- while ((ch != '\n') && (ch != EOF)) {
- if (count == maximumLineLength) {
- maximumLineLength += 128;
- lineBuffer = realloc(lineBuffer, maximumLineLength);
- if (lineBuffer == NULL) {
- printf("Error reallocating space for line buffer.");
- exit(1);
- }
- }
- lineBuffer[count] = ch;
- count++;
- ch = getc(file);
- }
- lineBuffer[count] = '\0';
- char line[count + 1];
- strncpy(line, lineBuffer, (count + 1));
- free(lineBuffer);
- const char *constLine = line;
- return constLine;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement