簡體   English   中英

ASCII /計數打印C程序?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM