| HTMLのソースコードをCやC++の中で文字列として扱いたいということがよくあると思います。(というか僕はよくあります。「HTML5でコンスタレーションを表示するC++のソースコード」とか。) 最近はHTMLだけで図とかも書けるようになってきたのでささっとグラフを描いてみたいときとかCやC++でHTMLを吐けるととても便利です。そんなソフトウェアを開発しているときに役立つツールです。単に一文字ずつ読み込んで問題があるものはエスケープしたり文字列を置き換えたりしたりしてるだけです。 #include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
  if(argc != 2){
    printf("usage: %s [file]\n", argv[0]);
    exit(-1);
  }
  FILE* rfp = fopen(argv[1], "r");
  char c = fgetc(rfp);
  while(c != EOF){
    if(c == '\n'){
      printf("\\n");
    }else if(c == '\r'){
      printf("\\r");
    }else if(c == '"'){
      printf("\\\"");
    }else if(c == '%'){
      printf("%%%%");
    }else{
      printf("%c", c);
    }
    c = fgetc(rfp);
  }
  fclose(rfp);
}
 |