我正在尝试编写一个程序,该程序将从标准输入读取字符,直到读取 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/