2014-02-19 53 views
0

我正在尝试使程序从标准输入读取字符,直到读取EOF(文件结束标记)。ASCII /计数打印C程序?

而且该功能后,我有:

#include <stdio.h> 



int main(int agc, char *agv[]) { 
    int x; 
    int count = 0; 

    while ((x = getchar()) != EOF){ 
    count++; 
+3

老实说@BLUEPIXY,这很粗鲁。我可能不会与这里的任何人相提并论,但我正努力通过CS的介绍课程,而不必浪费金钱和学分,参加课程,因此我需要额外的帮助,我有一本介绍书,并且无需通过它讲师有点困难。所以谢谢你缺乏帮助。 –

+0

我会推荐youtube视频。有很多很好的编程教程视频。通常这里的问题是非常具体的,所以你的文章是有点在那里... – thang

+0

这是重复删除的问题,而不考虑评论和答案,这是粗鲁的问题。 – BLUEPIXY

回答

0

在你main(),标线是函数的声明,而不是函数调用。您可能需要用调用函数来替换它们。

int main(int argc, char *argv[]) { 
    int x; 
    int count = 0; 

    while ((x = getchar()) != EOF){ 
     count++; 
    } 
    prHeader(FILE *out); // Declaration 
    prCountStr(FILE *out, int code, char *str, int count); // Declaration 
    prCountChr(FILE *out, int code, char chr, int count); // Declaration 
    prTotal(FILE *out, int count); // Declaration 
    return 0; 
} 

你也将需要有一个数组(counters,因为参数的缘故)的256个整数,全部初始化为0,你的循环将递增counters对应刚才读的字符的条目。幸运的是,getchar()为每个可能的输入字符返回一个正值。

在C中,你应该很少在头文件中定义一个函数;在你的情况下,你不应该在头文件中定义函数。声明应该在那里,但定义不应该在那里。你应该有另一个源文件,大概common.c,它定义的功能。然后,您需要编译包含main()函数和common.c的文件,并且您需要链接两个目标文件以创建该程序。 (在短期内,您可以通过在头文件中保留函数并简单地编译定义main()函数的代码来避免这种情况,但这是颠覆头文件的一部分。)大多数变量定义应该在common.c也不在common.h

你还有其他工作要做; BADFILE和相关的宏还没有被使用。它也似乎你可能需要解析命令行选项。