|
>ご指摘の通りに貼り付けたのですが…
>HTML表示になってくれないのは、なぜでしょう?
>質問が、どんどんそれてますが…
UNIX環境では、文字コードの関係でうまく動かないのかもしれません。
下のプログラムをコンパイルして、コマンドラインから使ってみてください。
結果は標準出力に垂れ流しなので、リダイレクトなどでファイルに保存が必要です。
/*
HTML昆布 to C(簡易版C言語のソース)
*/
#include <stdio.h>
#include <stdlib.h>
#define F_NAME (argv[1])
void put_line( const char *buf );
int main( int argc, char *argv[] )
{
FILE *fp = NULL;
char buf[BUFSIZ] = "";
if (argc != 2 || (fp = fopen( F_NAME, "r" )) == NULL)
exit( 1 );
puts( "<pre>" );
while(fgets( buf, sizeof buf, fp ))
put_line( buf );
puts( "</pre>" );
fclose( fp );
return 0;
}
void put_line( const char *buf )
{
int i, len, space, tab = 4;
for (i = 0, len = 0; buf[i]; i++, len++)
switch (buf[i]) {
case '\t':
space = tab - len % tab;
printf( "%*s", space, "" );
len += space - 1;
break;
case '<': printf( "%s", "<" ); break;
case '>': printf( "%s", ">" ); break;
case '\"': printf( "%s", """ ); break;
case '&': printf( "%s", "&" ); break;
default: putchar( buf[i] ); break;
}
}
|