0

如何在自动生成的 C++ 代码中将分成三行的“for”语句重新格式化为一行?我尝试了 uncrustify,但我无法让它格式化括号内的部分。sed 似乎不适合这个。任何人都可以建议我其他格式化程序或一些可以处理它的linux命令吗?

要格式化的代码:

void func(double* s, Quaternion& a, int n)
{
 int size((n<4)?n:4);
 for (int i=0;
      i<size;
           i++)
 {
  a[i] = s[i];
 }
}

我希望将上面的“for”语句格式化为一行,例如:

 for (int i=0; i<size; i++)
4

2 回答 2

2

尝试铿锵格式。这有点新,但在 GoingNative2013 上的一次谈话显示出有希望的结果。

于 2013-09-24T09:24:57.940 回答
1

您可以使用gnu indent

indent -npsl inputfile.c你的片段会导致:

void func (double *s, Quaternion & a, int n)
{
  int size ((n < 4) ? n : 4);
  for (int i = 0; i < size; i++)
    {
      a[i] = s[i];
    }
}

该手册可在此处访问。

于 2013-09-24T09:25:53.453 回答