ASCII /计数打印C程序?

时间:2014-02-19 00:28:54

标签: c

我正在尝试创建一个程序,它将从标准输入中读取字符,直到读取EOF(文件结束标记)。

在那个功能之后我有:

#include <stdio.h>



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

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

1 个答案:

答案 0 :(得分: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;
}

你还需要一个256个整数的数组(counters,为了参数),所有数据都被初始化为零,你的循环将增加counters对应的条目人物刚看完。幸运的是,getchar()为每个可能的输入字符返回一个正值。

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

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