This question already has answers here:
C/C++ line number
                                
                                    (8个答案)
                                
                        
                                4年前关闭。
            
                    
我是编程的新手,我有一个可以运行的程序,但是我需要为其显示行号。我可以使用C宏__LINE__吗?如果是这样,我可以在代码中插入它,如果不能,我该怎么做才能使程序随代码一起打印出行号?提前致谢。

最佳答案

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

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


来自C11 6.10.8.1 Mandatory macros


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




如果(根据您的评论的情况而定)仅需要一个输出行号的程序,则建议不要使用__LINE__

取而代之的是,最好让程序记录它所在的行并在行本身之前输出。参见,例如:

#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;
}

关于c - 如何打印行号? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29529786/

10-13 08:19