2015-10-13 69 views
0

我放出來應該是這樣的如何打印在打印到控制檯的各行的開始,打印文件的行號

1)你好...
2)編程1 ...
3)學生!
4)歡迎使用File I/O!

我已經做了一切,但我無法弄清楚如何打印每行的數字?

到目前爲止我得到

#include <stido.h> 

int main(int argc,char* argv[]) 
{ 

    char string[200]; 
    FILE* file = fopen("file2.txt","r"); 
    while(fscanf(file, "%c", string) ==1) 
    { 
     printf("%c", *string); 
    } 

    fclose(file); 
    return 0; 
} 
+0

看起來你會想創建一個臨時變量。在while循環的每個循環中增加temp變量。 int lineNum = 1; while ...(sprintf(str,「%d」,linNum); printf(「%c」,* string);}沿着這些行的東西。 – Enkode

回答

0
int num = 1; 
char line[200]; 
FILE* file = fopen("file2.txt","r"); 
while(fgets(line, 200, file)) 
{ 
    printf("%d) %s", num, line); 
    num++; 
} 
0

爲避免線路長度的限制等char string[200],簡單通過如果珍貴char檢查檢測行的開始是一個換行,然後打印的數量。在線數量不需要保守,所以使用寬類型。

#include <assert.h> 
#include <stido.h> 

int main(int argc,char* argv[]) { 
    int previous = '\n'; 
    int ch; 
    unsigned long long line_count = 0; 
    FILE* file = fopen("file2.txt","r"); 
    assert(file); 
    while((ch = fgetc(file)) != EOF) { 
     if (previous == '\n') { 
     printf("%llu) ", ++line_count); 
     } 
     fputc(ch, stdout); 
     previous = ch; 
    } 
    fclose(file); 
    return 0; 
}