我正在尝试创建一个程序,它将从标准输入中读取字符,直到读取EOF(文件结束标记)。
在那个功能之后我有:
#include <stdio.h>
int main(int agc, char *agv[]) {
int x;
int count = 0;
while ((x = getchar()) != EOF){
count++;
答案 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和相关的宏尚未使用。您似乎也可能需要解析命令行选项。