gpt4 book ai didi

c - 如何将文件中的字符存储到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:47 25 4
gpt4 key购买 nike

拜托,我在这方面遇到了很多麻烦。我有一个包含大量字符的文本文件,我需要通读每个字符,如果它是字母表中的一个字母,那么我需要将它存储在一个数组中。

到目前为止,我只是尝试将字符放入我的数组中,不管它是否是字母字符,但我的 fscanf 没有读取任何内容。

这是我的代码

    char j = ' ';
int i;

FILE *file = fopen("text.txt", "r");
for(i = 0; i < 10; i++)
{
fscanf(file, " %c ", &j);
printf(" %c\n", j); //So I could see if j got anything BUT I'M NOT :(
if((j >= '97' && j <= '122') || (j >= '65' && j <= '90'))
{
fscanf(file, "%c", &array[i]);
}
}

fclose(file);
return 0;

我的结果?没有什么只是空格。是的,我的文本文件与我的 .c 文件位于同一文件夹中

帮助

我的问题:我的 fscanf 实际上没有读取任何内容。我的 j 变量永远不会改变!多亏了下面的助手,我现在可以修复 ASCII 的问题,但是 fscanf 是我阻止我进步的主要问题

最佳答案

主要问题:

/* WRONG */
if((j >= '97' && j <= '122') || (j >= '65' && j <= '90'))

/* CORRECT */
if((j >= 97 && j <= 122) || (j >= 65 && j <= 90))

换句话说,表达式 'A''\0x41'65 在此上下文中都是等价的。

但“65”不是。这意味着字符“ASCII 6”和“ASCII 6” - 这样的字符不存在 :(

附言:正如 Bluepixy 所建议的那样,isalpha()是你的 friend 。我鼓励您在代码中替换 isalpha()

关于c - 如何将文件中的字符存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735781/

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