アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語のソースをHTMLに直してくれるサイトやプログラムはあるでしょうか・・・。見やすいように一行おきに背景色を付けてくれるものを探しているのですがVectorでは見つけられなくて質問しました。

A 回答 (3件)

No.2です。


下記のprintHTML関数の本体部分を先ほどの「c2html.c」へ
追加してください。
void printHTML(FILE *stream, const char *str)
{
int i;

for(i=0; *(str+i) != '\0'; i++){
switch(*(str + i)){
case '<':
fprintf(stream, "&lt;");
break;
case '>':
fprintf(stream, "&gt;");
break;
case '&':
fprintf(stream, "&amp;");
break;
case '\t':
fprintf(stream, "");
break;
default:
fprintf(stream, "%c", *(str + i));
break;
}
}
}
色設定は適当ですので、お好みで変更していただければと思います。
    • good
    • 0

単純なHTMLでよければこんなのでどうでしょう?


「c2html.c」というファイルを作成し、コピーしてみてください。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void printHTML(FILE *stream, const char *str);

#define BUF_SIZE 256

int main(int argc, char *argv[])
{
FILE *fpSource, *fpOut;
char buf[BUF_SIZE];
char *color[2] = {"lightgreen", "white"};
int idx = 0;

if(argc < 3){
printf("Usage:\n");
printf(">c2html <source.c> <out.html>\n");
exit(0);
}

printf("%s -> %s\n", argv[1], argv[2]);

fpSource = fopen(argv[1], "r");
fpOut = fopen(argv[2], "w");

if(fpSource == NULL || fpOut == NULL){
printf("File open error\n");
exit(1);
}

fprintf(fpOut, "<html>\n");
fprintf(fpOut, "\t<head>\n");
fprintf(fpOut, "\t\t<title>%s</title>\n", argv[1]);
fprintf(fpOut, "\t</head>\n");
fprintf(fpOut, "<body>\n");
fprintf(fpOut, "<h3>%s</h3>\n", argv[1]);
fprintf(fpOut, "\t\t<table border='0'>\n");
while(fgets(buf,BUF_SIZE,fpSource) != NULL){
buf[strlen(buf)-1] = '\0';
fprintf(fpOut, "\t\t\t<tr bgcolor='%s'><td align='right'>%d:</td><td>", color[idx % 2], idx+1);
if(strlen(buf) == 0){
fprintf(fpOut, "");
}else{
printHTML(fpOut, buf);
}
fprintf(fpOut, "</td></tr>\n");
idx++;
}
fprintf(fpOut, "\t\t</table>\n");
fprintf(fpOut, "\t</body>\n");
fprintf(fpOut, "</html>\n");

fclose(fpSource);
fclose(fpOut);

return 0;
}

printHTML関数が入りきらなかったので、申し訳ありませんが
連投させていただきます。
    • good
    • 0

SourceConverterっていうソフトがありますが、どうでしょうか?


Cにも対応しているようです。

参考URL:http://www.forest.impress.co.jp/lib/stdy/program …

この回答への補足

これも1行ごとに色つけできないタイプですね・・・

補足日時:2007/11/21 06:40
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!