|
发表于 2024-10-12 19:40:52
|
显示全部楼层
好的,我们可以使用C语言中的标准I/O函数来实现这个功能,包括创建文件、写入数据、读取数据以及统计字符、单词和行数。下面是一个简单的实现示例:
- #include <stdio.h>
- #include <ctype.h>
- #define FILENAME "example.txt"
- void write_to_file(const char *filename, const char *content) {
- FILE *file = fopen(filename, "w");
- if (file == NULL) {
- perror("无法创建文件");
- return;
- }
- fputs(content, file);
- fclose(file);
- }
- void read_and_analyze_file(const char *filename) {
- FILE *file = fopen(filename, "r");
- if (file == NULL) {
- perror("无法打开文件");
- return;
- }
- int char_count = 0, word_count = 0, line_count = 0;
- char c;
- char previous = '\0';
- while ((c = fgetc(file)) != EOF) {
- char_count++;
- if (c == '\n') {
- line_count++;
- }
- if (isspace(c) && !isspace(previous)) {
- word_count++;
- }
- previous = c;
- }
- if (!isspace(previous)) {
- word_count++;
- }
- if (char_count > 0 && previous != '\n') {
- line_count++;
- }
- fclose(file);
- printf("字符数量: %d\n", char_count);
- printf("单词数量: %d\n", word_count);
- printf("行数量: %d\n", line_count);
- }
- int main() {
- const char *content = "Hello, FishC!\nWelcome to learning C programming.\nEnjoy coding!";
- write_to_file(FILENAME, content);
- read_and_analyze_file(FILENAME);
- return 0;
- }
复制代码
### 代码说明:
1. **`write_to_file`**:这个函数用于创建文件并写入给定的字符串内容。
2. **`read_and_analyze_file`**:该函数读取文件中的内容,并通过检查字符来统计字符数、行数和单词数(通过检测空白字符的变化判定单词)。
3. **`main`**:在`main`函数中,首先将内容写入文件,然后读取并分析文件。
注意:此代码处理简单文本,忽略了一些特例(如多行行末未终止换行符等),实际使用中可以根据需要进行更详细的处理。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|