gpt4 book ai didi

c - 使用 fgetc 读取某些字符

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

我正在尝试创建一个拼写检查程序,它接受一个输入文件并通过搜索字典文件来确保每个单词都是正确的。我面临的问题是,当我尝试从输入文件中取出每个由空格分隔的单词并将其放入 char [] 时,出于某种原因带有 " 的单词打印

H0
i1
c0
h1
r2
i3
s4
!5
â0
1
2
h3
o4
w5
w6
â7
8
9
a0
r1
42
e3
y0
o1
u2
.3

整数是我的索引

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "dict.h"

int main(int argc, char *argv[] ) {
FILE *fdict,*input;
int i;
char ch;

/* the biggest posible word is 30 plus a possible of two " or ' characters and the null character. so the limit of the array is 33*/
char norm[33];

if ( argc < 3 ) /* argc should be 3 for correct execution*/
{
fprintf(stderr,"1 or 2 Files were missing.");
exit(1);
}

if ( argc > 3 ){
fprintf(stderr,"too many Arguments");
exit(1);
}

/* We assume argv[1] and agrv[2] are filenames to open*/
fdict = fopen( argv[1], "r" );/* file pointer for the dictionary file*/
input = fopen( argv[2], "r" );/*file pointer for the input file*/

/* fopen returns NULL on failure */
if ( fdict == NULL ){
fprintf(stderr,"Could not open file: %s\n", argv[1] );/*checks to make sure the dictionary file can be opened*/
exit(1);
}

if ( input == NULL ){
fprintf(stderr,"Could not open file: %s\n", argv[2] );/*checks to make sure the input file can be opened*/
exit(1);
}
/* Read one character at a time from file, stopping at EOF, which
indicates the end of the file. Note that the idiom of "assign
to a variable, check the value" used below works because
the assignment statement evaluates to the value assigned. */
while ( ( ch = fgetc( input ) ) != EOF ) {

char word[33] = "";/* resets the array*/

for ( i = 0; !isspace( ch ) ; i++ ){
word[i] = ch;
printf("%c%d\n",ch,i);/* checking to see what is wrong with the index*/
ch = fgetc( input );

}


}
fclose( fdict );
fclose( input );

return 0;

}

我的输入是这样的:

Hi chris! “howw” are you.

最佳答案

" 不同。(3 个不同的引号。)基于不同的编码,这 3 个字符使用各种 char 序列来表示它们,但代码一次只打印一个 char

建议只使用简单的引号 "

一个简单的或程序员的文本编辑器就可以了。在您的代码准备好之前,避免使用可能引入非 ASCII 引号的文字处理器 (@n.m.)

关于c - 使用 fgetc 读取某些字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26021322/

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