c - ASCII/计数打印C程序?

标签 c

我正在尝试编写一个程序,该程序将从标准输入读取字符,直到读取 EOF(文件结束标记)为止。

在该功能之后我有:

#include <stdio.h>



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

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

最佳答案

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 语言中,你应该很少在头文件中定义函数;在您的情况下,您不应该在 header 中定义函数。声明应该在那里,但定义不应该在那里。您应该有另一个源文件,大概是 common.c,它定义了函数。然后,您需要编译包含 main() 函数的文件和 common.c,并且需要链接这两个目标文件来创建程序。 (短期内,您可以通过将函数保留在 header 中并简单地编译定义 main() 函数的代码来避免这种情况,但这破坏了头文件的要点。)大多数变量定义应该位于 common.c 中,而不是位于 common.h 中。

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

关于c - ASCII/计数打印C程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868516/

相关文章:

c - C 中的 open() 系统调用以字符数组作为附加路径?到文件名

c - 如何将文件中的值包含到代码中

c - 使用 GCC 编译时出错

c - 指向结构体类型数组的指针段错误

c - PlaySound() 在 WM_DESTROY 和 DrawText 问题后继续播放我的 .wav

c - 如何以编程方式编辑路由表

c - 使用 va_args 而不传递 num(如 printf)

c - 尝试从 C 中的 txt 文件中读取数字时出错

c - 为什么分配指针后程序崩溃

c - 将值赋给 ScanF 中的 char *