0

fgets() を使用してファイル内の行を読み取るこの単純なコード ブロックがあります。ここで、「{」または「}」がある場合にこの行を検索し、コメントされたものに無視コメントを付けたいと思います。関数 { および } について、次のようなコメントを追加したい //This is a good { . どうすればそれを行うことができますか?正規表現を使用する必要がありますか? while ループを削除して、行ごとの反復を簡素化しました。

どういうわけか、配列だと思う mystring を使用できますか? 変更の mystring を追加できますか? または、私がしなければならないことは、新しい配列を作成し、そこに mystring を入れてから、コメントを入れることです。

例: myfile.txt

/* Hello {} */
function
{
  hello();
}

出力

/* Hello {} */ //Ignored
function
{ //This is a good {
  hello();
} //This is a good }

私の単純なブロック:

#include <stdio.h>
int main()
{
    FILE * pFile;
    char mystring [100];

    pFile = fopen ("myfile.txt" , "r");
    if (pFile == NULL) perror ("Error opening file");
    else {
        if ( fgets (mystring , 100 , pFile) != NULL )
            puts (mystring);
        fclose (pFile);
    }
    return 0;
}
4

2 に答える 2

0

これは http://www.lemoda.net/c/unix-regex/index.htmlに使用できます。

私はコードを与えることができるかもしれません..

于 2013-01-25T19:41:42.093 に答える
0

mystring を処理する簡単な方法を次に示します。

char *ptr=strchr(mystring,'{');
if(ptr)
{  
   sprintf(mystring,"%s //This is a goof {",mystring);
}
else
{
  ptr=strchr(mystring,'}');
  if(ptr)
  {
     sprintf(mystring,"%s //This is a goof }",mystring);
  }
}

お役に立てれば。

于 2013-01-25T19:42:07.490 に答える