Во-вторых, с моего назначения я новичок в программе на С, но слишком отстает от этого. Я должен решить это сегодня. Я думал, что в основном (для меня действительно сложно понять функцию с файлом) предполагается, что fscan должен прочитать файл и вывести новые строки из файла. Файл также включен, например, я тоже использую. Я знаю, что 5 баллов кажутся очень неловкими, но я новичок в программе на C и никогда не делал с функциональной частью программы на C. Я хотел вывести с i
, чтобы подсчитать каждую строку для печати. Я также думал, что комментарии помогут немного больше информации. Для функции я не знаю, что написать код для fooen и fgets в первый раз.
Например:
Example input/output:
./a.out testfile
1: Bob
2: Tiffany
3: Steve
4: Jim
5: Lucy
...
/* 5 points */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXLEN 1000
#define MAX_LINE_LEN 4096
/**
* Complete the function below that takes an array of strings and a integer
* number representing the number of strings in the array and prints them out to
* the screen with a preceding line number (starting with line 1.)
*/
void
printlines (char *a[], int n)
{
}
/**
* Create a main function that opens a file composed of words, one per line
* and saves them to an array of MAXLEN strings that is then printed using
* the above function.
*
* Hints:
* - Use fopen(3) to open a file for reading, the the returned file handle * with the fscanf() function to read the words out of it.
* - You can read a word from a file into a temporary word buffer using the
* fscanf(3) function.
* - You can assume that a word will not be longer than MAXLEN characters.
* - Use the strdup(3) function to make a permanent copy of a string that has
* been read into a buffer.
*
* Usage: "Usage: p7 <file>\n"
*
* Example input/output:
* ./p7 testfile
* 1: Bob
* 2: Tiffany
* 3: Steve
* 4: Jim
* 5: Lucy
* ...
*/
int main (int argv, char *argc[])
{ if (argc < 2)
{
printf ("Usage: p7 <file>\n");
}
char buffer[MAX_LINE_LEN];
/* opening file for reading */
FILE *fp = fopen (argv[1], "r");
if (!fp)
{
perror ("fopen failed"); exit (EXIT_FAILURE);
}
int i = 0;
while ((i <= MAX_LINES) && (fgets (buffer, sizeof (buffer), fp)))
{
printf ("%2i: %s", i, buffer); //i is to count from each lines
i++;
}
fclose (fp);
return (0);
}
Просмотр для testfile
:
Bob
Tiffany
Steve
Jim
Lucy
Fred
George
Jill
Max
Butters
Randy
Dave
Bubbles