[英]ASCII/count printing C program?
我正在嘗試制作一個程序,該程序將從標准輸入中讀取字符,直到讀取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;
}
你也將需要有一個數組( counters
,因為參數的緣故)的256個整數,全部初始化為0,你的循環將增加在入門counters
對應剛才讀的字符。 幸運的是, getchar()
為每個可能的輸入字符返回一個正值。
在C語言中,您很少應該在標頭中定義函數; 在這種情況下,您不應在標頭中定義函數。 聲明應該在那里,但是定義不應該在那里。 您應該有另一個源文件,大概是common.c
,它定義了這些功能。 然后,您需要同時編譯包含main()
函數和common.c
,並且需要鏈接兩個目標文件以創建程序。 (短期內,您可以通過將函數保留在頭文件中並簡單地編譯定義main()
函數的代碼來避免這種情況,但這會破壞頭文件的指向。)大多數變量定義應為在common.c
,而不在common.h
。
您還有其他工作要做; BADFILE和相關的宏尚未使用。 看來您可能還需要解析命令行選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.