2011-11-03 74 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”之类的格式。