如何打印行号?

时间:2015-04-09 04:28:39

标签: c line-numbers

我是编程的新手,我有一个运行的程序,但我需要为它显示行号。我可以使用C宏__LINE__吗?如果是这样,我可以在哪里插入代码,如果不是,我可以做什么,以便程序打印出行号和代码?提前致谢。

1 个答案:

答案 0 :(得分:2)

__LINE__宏扩展为整数行号(源文件中的假定行号),因此您可以在任何可用整数的地方使用它:

printf ("This line is %d.\n", __LINE__);

来自C11 6.10.8.1 Mandatory macros

  

__LINE__当前源行的假定行号(在当前源文件中)(整数常量)。


如果基于您的评论的情况,您只需要一个程序使用行号输出自己,我建议使用__LINE__。< / p>

相反,让程序记录它所在的行,并在行本身之前输出它可能会更好。例如,见:

#include <stdio.h>

int main (void) {
    static char buff[100000];
    int lineNum = 0;
    FILE *fp = fopen (__FILE__, "r");
    if (fp != NULL) {
        while (fgets (buff, sizeof (buff), fp) != NULL) {
            printf ("%7d: %s", ++lineNum, buff);
        }
        fclose (fp);
    }
    return 0;
}