2011-11-03 73 views
0

對不起,提出了一個非常簡單的問題。我對編碼很陌生。
輸入txt文件C中的文件處理

5,3
001
110
111
110
001

我需要打印輸出作爲

U1:001
U2:110
U3:111
U4:110
U5:001

現在我可以用這個打印內容:

#include <stdio.h> 
    void main() { 
    FILE *fopen(), *fp; 
    int c; 

    fp = fopen("read.txt","r"); 
    c = getc(fp) ; 

    while (c!= EOF) { 
     putchar(c); 
     c = getc(fp); 
    } 

    fclose(fp); 
    } 

Can有人可以告訴我該怎麼做?

+0

我正在閱讀,但你可以顯示一些方向。 – Naresh

+0

一個提示:使用超過1個空格進行縮進。閱讀代碼相當困難。例如 – Pithikos

+1

@ILLUMINATI7590,Kernighan和Ritchie。你真的聽起來像你需要在這裏做一些自己的努力。 –

回答

2

您的大部分工作都是在while循環內完成的。
但是你沒有做足夠的工作...
一),你需要計算行
b)您需要打印"U#"

建議:創建一個變量的行統計業務和重寫你的循環考慮它。下面的幾個片段

int linecount = 0; 


printf("U%d: ", linecount) 


if (c == '\n') linecount += 1; 

哦!你真的不應該自己添加fopen的原型。它已經用#include <stdio.h>指定。

And 做得好,宣佈cint很多人都宣稱它char這與EOF不兼容和人物

0

的所有範圍內我將在與fgets一次讀取的數據線的錯誤。當你在緩衝區中有完整的行時,通過fprintf可以很容易地將你的行標題放入「U%d:%s \ n」之類的格式。