1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#include<stdio.h>
#include<ctype.h>
static void create (char const *fname, char const *line)
{
FILE *fp = fopen (fname, "w");
if (fp != NULL)
{
char const *p = line;
while (*p != 0)
{
fputc (*p, fp);
p++;
}
fclose (fp);
}
else
{
perror (fname);
}
}
static void count (char const *fname, char const *mode)
{
FILE *fp = fopen (fname, mode);
if (fp != NULL)
{
int i = 0;
int c;
while ((c = fgetc (fp)) != EOF)
{
printf ("%3d", c);
if (isprint (c))
{
printf (" '%c'", c);
}
putchar ('\n');
i++;
}
fclose (fp);
printf ("%d byte%s read in '%s' mode\n\n", i, i != 1 ? "s" : "", mode);
}
else
{
perror (fname);
}
}
int main (void)
{
#define F "data.txt"
create (F, "hello\n");
count (F, "r");
count (F, "rb");
return 0;
} |