gpt4 book ai didi

c - 扫描文件和计算 c 中的值时出现段错误

转载 作者:行者123 更新时间:2023-11-30 18:41:13 25 4
gpt4 key购买 nike

我正在扫描一个文件并计算有多少个字母是大写、小写、数字或其他字符;出于某种原因,它给了我段错误;我不太清楚为什么这是我的代码

#include<stdio.h>
#include<ctype.h>

int main(void)
{
FILE *ifp, *ofp;
char *mode = "r";
char words;
int lengthOfWords, i;
int uppercase=0, lowercase=0, digits=0, other=0, total=0;

ifp = fopen("story.txt", "r");

if (ifp == NULL) {
fprintf(stderr, "Can't open input file in.list!\n");
return 0;
}
else
{
while(fscanf("%c", &words) != EOF)
{
if ((words>='A')&&(words<='Z'))
{
uppercase++;
}
else if ((words>='a')&&(words<='z'))
{
lowercase++;
}
else if ((words>='0')&&(words<='9'))
{
digits++;
}
else
{
other++;
}
}
}
printf("\n%d %d %d %d\n",uppercase, lowercase, digits, other );



return 0;

}

为什么我只是逐个字符地阅读它并边读边数

顺便说一句,这是我的txt文件。

The quick Fox jumps
over 2014 *$!&#@] lazy dogs.

最佳答案

您忘记传递FILE(流指针)作为fscanf函数的参数:

while (fscanf(ifp, "%c", &words) != EOF)

根据manfscanf的签名是:

int fscanf(FILE *restrict stream, const char *restrict format, ...);

关于c - 扫描文件和计算 c 中的值时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com