Oto zalążek
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char usage[] = "Uzywamy:\n"
" c2html [nazwa pliku .C] [nazwa pliku html] [flagi]\n"
" Flagi:\n"
" -n Dodawnianie numerowanie wierszy do pliku html.\n";
int main( int numArgs, char *argList[] )
{
FILE *ifp; /*Plik wejsciowy w jezyku C*/
FILE *ofp; /*Plik wyjsciowy w html*/
char c;
char number = 0; /*Numerowanie linii? 0 = Nie 1 = Tak , domyslnie ustawione na 0 */
int i = 1; /*Licznik potrzebny do numerowania linii*/
if( numArgs < 3 )
{
fprintf( stderr, "%s\n", usage );
return 1;
}
if( numArgs > 3 && !strcmp( argList[3], "-n" ) )
{
number = 1;
}
else
{
number = 0; /*Przydatne przy nadmiarowosci*/
}
if( (ifp = fopen( argList[1], "r" ) ) == NULL )
{
fprintf( stderr, "Blad: Nie moge otworzyc %s. Przerywam!\n", argList[1] );
return 1;
}
if( (ofp = fopen( argList[2], "w" ) ) == NULL )
{
fprintf( stderr, "Blad: Nie moge zapisac %s. Przerywam!\n", argList[2] );
return 1;
}
/*Naglowki otwierajace dokument html*/
fprintf( ofp, "<!--Program stworzyli placek1 i placek2\n--!>\n<html>\n<head>\n<title>%s</title>\n</head>\n<body>\n
\n", argList[1] );
/Jezeli wlaczone numerowanie linii, zacznij numerowac linie/
if( number )
{
fprintf( ofp, "%i: ", i );
i++;
}
while( (c = fgetc( ifp ) ) != EOF )
{
/Znaki do zmiany w standardzie HTML ISO-8859-1/
switch( c )
{
case '"':
fprintf( ofp, """ );
break;
case ''':
fprintf( ofp, "'" );
break;
case '&':
fprintf( ofp, "&" );
break;
case '<':
fprintf( ofp, "<" );
break;
case '>':
fprintf( ofp, ">" );
break;
case '\n':
{
if( number )
{
fprintf( ofp, "
\n%i: ", i++ ); /Jezeli numerujemy wiersze w tym miejscu
zapamietujemy bierzacy numer!/
while( ( c = fgetc( ifp ) ) == ' ' )
{
fprintf( ofp, " " ); /Tworzenie spacji za pomoca  's, w przeciwnym wypadku przegladarka je usunie/
}
ungetc( c, ifp ); /Zwraca ostatni znak zeby czytanie bylo szybsze/
}
else
{
fprintf( ofp, "
\n" );
while( ( c = fgetc( ifp ) ) == ' ' )
{
fprintf( ofp, " " ); /To samo co wyzej tylko w opcji bez numerowania wierszy/
}
ungetc( c, ifp );
}
break;
}
default:
fprintf( ofp, "%c", c );
break;
}
}
/Znaki konczace dokument html/
fprintf( ofp, "
\n</body>\n</html>\n" );
/*Zamykanie plikow (wejsciowy i wyjsciowy)*/
fclose( ofp );
fclose( ifp );
return 0;
}
I problem Otoż zawartość pliku html jest jakaś dziwna. Są niby te wszystkie heady itd, ale w linijkach pomiedzy
wywala mi jakieś dziwne znaki. Ktoś podpowie dlaczego?