0
我正在嘗試使程序從標準輸入讀取字符,直到讀取EOF(文件結束標記)。ASCII /計數打印C程序?
而且該功能後,我有:
#include <stdio.h>
int main(int agc, char *agv[]) {
int x;
int count = 0;
while ((x = getchar()) != EOF){
count++;
我正在嘗試使程序從標準輸入讀取字符,直到讀取EOF(文件結束標記)。ASCII /計數打印C程序?
而且該功能後,我有:
#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和相關的宏還沒有被使用。它也似乎你可能需要解析命令行選項。
老實說@BLUEPIXY,這很粗魯。我可能不會與這裏的任何人相提並論,但我正努力通過CS的介紹課程,而不必浪費金錢和學分,參加課程,因此我需要額外的幫助,我有一本介紹書,並且無需通過它講師有點困難。所以謝謝你缺乏幫助。 –
我會推薦youtube視頻。有很多很好的編程教程視頻。通常這裏的問題是非常具體的,所以你的文章是有點在那裏... – thang
這是重複刪除的問題,而不考慮評論和答案,這是粗魯的問題。 – BLUEPIXY