2013-07-27 210 views
0

如何在我的程序實現中包含cat -n命令 這是我的程序的問題,我無法在每行之後打印一個新的行號,所以對於我可以做什麼提出任何建議做糾正這種Unix cat -n命令執行

if(argv[1] == "-n") 
{ 
    fd = open(argv[i],O_RDONLY); 
    printf("%d\t",line); 
    while(n = read(fd,&s,1) > 0) 
    { 
     if(s == '00') 
     { 
      line++; 
      printf("\n%d\t",line); 
     } 
     printf("%c",s); 
    } 
} 
+0

「00」不是有效的字符文字。 –

+1

@JoachimPileborg這可能不是他打算使用的,但它是一個有效的字符文字。 – ouah

+1

警告:多字符字符常量[-Wmultichar] int s ='00'; –

回答

1
while (n = read(fd,&s,1) > 0) 

缺少括號。 >的優先級高於=

if(s == '00') 

這不是你如何檢測行結束。在unix類系統中,行尾通常是'\n'字符。

+0

爲什麼他會''00''是'\ n'的ascii值? –

+0

@GrijeshChauhan你應該問OP不是我。我不知道他爲什麼使用'00'。 – ouah

+0

'00'是一個錯誤。 –