#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_FILENAME_LEN 256 #define MAX_LINE_LEN 1024 int word_count(char *filename); int char_count(char *filename); int main(int argc, char *argv[]) { char filename[MAX_FILENAME_LEN]; int count; if (argc > 1) { strcpy(filename, argv[2]); } else { strcpy(filename, "input.txt"); } if (strcmp(argv[1], "-w") == 0) { count = word_count(filename); printf("单词数:%d\n", count); } else if (strcmp(argv[1], "-c") == 0) { count = char_count(filename); printf("字符数:%d\n", count); } else { printf("无效的参数\n"); } return 0; } int word_count(char *filename) { FILE *fp = fopen("C:\\Users\\csr\\Desktop\\wordCount\\input.txt", "r"); if (fp == NULL) { printf("文件打开失败\n"); exit(1); } int count = 0; char line[MAX_LINE_LEN]; while (fgets(line, MAX_LINE_LEN, fp)) { char *word = strtok(line, " ,\n\t"); while (word != NULL) { count++; word = strtok(NULL, " ,\n\t"); } } fclose(fp); return count; } int char_count(char *filename) { FILE *fp = fopen("C:\\Users\\csr\\Desktop\\wordCount\\input.txt", "r"); if (fp == NULL) { printf("文件打开失败\n"); exit(1); } int count = 0; char ch; while ((ch = fgetc(fp)) != EOF) { count++; } fclose(fp); return count; }程序流程图
时间: 2024-04-04 15:33:09 浏览: 56
#include <stdio.h>
4星 · 用户满意度95%
抱歉,我无法展示图片或流程图,但我可以通过文字描述来帮助您理解。
该程序的流程如下:
1. 定义了两个函数,分别为计算单词数和字符数的函数。
2. 在main函数中,获取输入参数和文件名,并根据输入参数调用相应的函数计算单词数或字符数。
3. 在计算单词数的函数中,打开输入文件并逐行读取,使用strtok函数分割每行文本为单词,并统计单词数。
4. 在计算字符数的函数中,同样打开输入文件并逐个字符读取,统计字符数。
5. 最后返回计算结果,并输出到屏幕上。
总的来说,该程序实现了一个简单的命令行工具,用于计算输入文件中的单词数和字符数。
阅读全文