subject
Computers and Technology, 19.03.2021 18:00 o0w0o

The programming language Python has some really nice functions for dealing with files. One of them is called readlines and it reads the lines of the files into an array. For this projcet you will be implementing readlines in C. Additional Details
For this assignment you will be creating a function and not an entire program.
The function your create should have the following signature:
void read_lines(FILE* fp, char*** lines, int* num_lines)​
This function should read all of the lines in the file pointed to by fp and
Set each row of lines to contain one line of the file
Set num_lines to be equal to the number of lines that were in the file
If the file is empty lines should be set to NULL and num_lines to 0
You should only submit read_lines. c and read_lines. h
I will provide main. c and the Makefile
Your code must compile using this Makefile and main. c
You cannot edit main. c
While you only have to write read_lines you can write as many other functions as you want
Hints
I highly recommend making more functions than just read_lines for solving this problem.
For example a function that reads a single line from the file
Examples
User input has been underlined to help you differentiate what is user input and what is program output.
Example 1
./read_lines. out Makefile
read_lines. out: read_lines. o main. o
gcc -g -Wall -Werror -o read_lines. out read_lines. o main. o
main. o: main. c read_lines. h
gcc -g -Wall -Werror -c -o main. o main. c
read_lines. o: read_lines. c read_lines. c
gcc -g -Wall -Werror -c -o read_lines. o read_lines. c
clean:
rm -f *.out *.o
main. c content:
#include
#include
#include "read_lines. h"
void print_lines(char** lines, int num_lines){
int i;
for(i = 0 ; i < num_lines; ++i){
printf("%d. %s", i+1, lines[i]);
}
}
void free_lines(char** lines, int num_lines){
int i;
for(i = 0 ; i < num_lines; ++i){
free(lines[i]);
}
if(lines != NULL && num_lines > 0){
free(lines);
}
}
FILE* validate_input(int argc, char* argv[]){
FILE* fp = NULL;
if(argc < 2){
printf("Not enough arguments entered.\nEnding program.\n");
exit(0);
}
else if(argc > 2){
printf("Too many arguments entered.\nEnding program.\n");
exit(0);
}
fp = fopen(argv[1], "r");
if(fp == NULL){
printf("Unable to open file: %s\nEnding program.\n", argv[1]);
exit(0);
}
return fp;
}
int main(int argc, char* argv[]){
char** lines = NULL;
int num_lines = 0;
FILE* fp = validate_input(argc, argv);
read_lines(fp, &lines, &num_lines);
print_lines(lines, num_lines);
free_lines(lines, num_lines);
fclose(fp);
return 0;
}

ansver
Answers: 3

Other questions on the subject: Computers and Technology

image
Computers and Technology, 23.06.2019 00:10, witerose701
Write a function so that the main0 code below can be replaced by the simpler code that calls function mphandminutes tomiles0. original main0 int main) l double milesperhour-70.0; double minutestraveled = 100.0; double hourstraveled; double milestraveled; hourstraveled = minutestraveled / 60.0; milestraveled = hourstraveled * milesperhour; cout < "miles" 2 using namespace std; 4 /* your solution goes here/ 6 int maino 1 test passed 7 double milesperhour 70.0 all tests passed 8 double minutestraveled 100.0; 10 cout < < "miles: " < < mphandminutestomiles(milesper-hour, minutestraveled) < < endl; 12 return 0; 13
Answers: 1
image
Computers and Technology, 24.06.2019 13:00, brusawerin5969
Refer to the figure and match the theorem that supports the statement.1.if chords are =, then arcs are =.if bc = de, then arc bc = arc de2.if arcs are =, then chords are =.if arc bc = arc de, then bc = de3.diameters perpen
Answers: 3
image
Computers and Technology, 24.06.2019 15:00, cooljariel11
What questions about an audience should be asked during presentation preparation? check all that apply. what does the audience already know about the topic? how will multimedia tools inspire the audience? is the information interesting and engaging? how will this information affect the presentation? will the audience change the message’s purpose? what is likely to interest the audience?
Answers: 3
image
Computers and Technology, 24.06.2019 17:30, mariahdelossantos031
Which computer network component connects two different networks together and allows them to communicate? a is a node (or a device) that connects two different networks together and allows them to communicate.
Answers: 2
You know the right answer?
The programming language Python has some really nice functions for dealing with files. One of them i...

Questions in other subjects:

Konu
Social Studies, 22.08.2019 15:30