C 我的代码中有多个错误,我不明白
目前正试图建立一个计算美国宪法中任何给定单词数量的函数。在初始构建时,直到我尝试运行它,它才让我知道任何警告或错误,然后出现了许多没有意义的错误。我不太擅长编码,有点沮丧 代码是C 我的代码中有多个错误,我不明白,c,C,目前正试图建立一个计算美国宪法中任何给定单词数量的函数。在初始构建时,直到我尝试运行它,它才让我知道任何警告或错误,然后出现了许多没有意义的错误。我不太擅长编码,有点沮丧 代码是 #include <stdio.h> #include <stdlib.h> #define MAX_WORD_LENGTH 32 #define MIN_WORD_LENGTH 5 int main() { FILE *file = fopen("F:\\The_US_Constit
#include <stdio.h>
#include <stdlib.h>
#define MAX_WORD_LENGTH 32
#define MIN_WORD_LENGTH 5
int main() {
FILE *file = fopen("F:\\The_US_Constitution.txt", "r");
char word[32];
const char *line;
const char *start = NULL;
int count = 0;
while(strlen(word) < MIN_WORD_LENGTH || strlen(word) > MAX_WORD_LENGTH);
printf("Enter a word: ");
scanf("&s",word);
if(strlen(word) >= MIN_WORD_LENGTH && strlen(word) <= MAX_WORD_LENGTH)
while((word = fgetc(file)) != EOF){
if (word == '\n')
count++;
}
return count;
fclose("F:\\The_US_Constitution.txt");
if(count > 0)
printf("The word ''",word,"''was found %d times in the US Constitution", count);
else
printf("The word ''", word, "''was not found in the US Constitution");
return EXIT_SUCCESS;
}
文件*文件=。。。它说这是一个未使用的变量?我不认为该文件需要定义,当我试图在别处定义它时,它说它仍然是一个未使用的变量。
代码说“line”和“start”都是我试图定义它们的同一行中未使用的变量。
当单词我相信你的代码有太多的错误,我无法帮助你。Stackoverflow对初学者来说不是一个好地方——我相信它是一个提出特定编程问题的论坛,而不是解释语言基本用法的复杂性。为了简化和加速您对C编程语言的探索,我建议您从更简单的任务和示例开始,这可以帮助您获得使用该语言的学习经验,并指导您继续学习。从小处开始,大处结束。我遇到的错误与您描述的有些不同。要修复隐式声明错误,需要更多头文件:
#include <stdio.h>
#include <string.h>
您有一些小问题,您的include缺少stdio.h和string.h,这一行打印的字word在美国公司找到了%d次。。是错误的,因为在C中不能以这种方式连接单词,您可以使用sprintf,例如:sprintf tempstring,单词%s在美国宪法中被找到%d次,单词,计数;putstempstring;然后有一行:whileword=fgetcfile!=EOF这里你相信你得到了这个词,但是你使用的是fgetc,它只得到一个字符,一次只解决一个问题,阅读错误消息。玩得开心。你有很多重大问题。前两个是,*文件未使用,因为在声明它之后,代码中不再引用它,这意味着它是一个不做任何事情的声明。您还打开了一个文件,但以后不再访问该文件,而是尝试关闭一个字符串变量,而不是打开的*文件。话虽如此,这不是一个有编号的问题列表的网站。这是一个问答网站——请注意,问题是单数的。如果你有多个问题要问,你需要创建多个问题来提问,而不是把它们全部放在这里。strlenword永远不能等于MAX_WORD_LENGTH,除非你声明char WORD[MAX_WORD_LENGTH+1];另一个一般注意事项是,文件I/O是最慢的操作之一。如果您要求搜索一个单词,然后每次重复读取文件
寻找匹配的时间,这不是最佳的或有效的。但对于一个练习来说还不错——加上宪法短约26.5K字节,因此没有明显的惩罚。但是,实际上,您可能希望将文件的内容存储在内存中,或者更好,只需将文件映射到mmap内存,就可以在内存中搜索任意次数,而无需触发任何额外的文件I/O。您可能会发现这一点很有帮助。只需提供要搜索的文件名作为第一个参数,例如argv[1]。例如,在宪法中,会议发生三次,国王发生一次,宪法中没有不称职的余地。见我在原始问题下的评论——这是另一个需要补充的问题。
printf("The word ''%s''was found %d times in the US Constitution", word, count);