我试图测试是否在file.txt的字符是一个空格“”或不使用此代码:测试从文件
char *Appartient (FILE *f, char *S)
{
int i = 0, nbdechar = 0, nbocc = 0, PosdePremierChar, space = 0;
char c;
while ((c = getc(f)) != EOF) {
PosdePremierChar = ftell(f);
if (c == S[0]) {
nbdechar = 0;
for (i = 1; i < strlen(S); i++) {
c = getc(f);
if (c == S[i]) {
nbdechar++;
}
}
if (nbdechar == strlen(S) - 1) {
nbocc++;
} else {
rewind(f);
fseek(f, PosdePremierChar - 1, SEEK_CUR);
while ((c = getc(f)) != ' ');
}
} else {
while ((c = getc(f)) != ' ') {
space++;
}
}
}
printf("\n Le nb d'occurence est %d", nbocc);
if (nbocc == 0) {
return "false";
} else {
return "true";
}
}
但一个奇怪的符号“在一个字符串的空间ے”看起来像一个垃圾当我检查我的调试器变量“C”:
什么是错的
绝对清楚你的要求!什么是调试模式?角色是如何出现的?我怀疑它,你没有发布打印字符的coed,发布的代码根本没有用处,不可能知道'f'是否被打开,唯一非常明显的是发布代码,它有丑陋的格式。 –
调试模式让我看到c的价值每一次工作,它的工作步骤购买步骤,问题是为什么我字符空间它不认为像一个字符空间:) – Programmer
“怪异的符号”是[U + 06D2 ARABIC LETTER YEH BARREE](http://www.fileformat.info/info/unicode/char/06d2/index.htm)。该字符可能在您的文件中,但通常情况下,getc不能将变量设置为0x06D2。我们需要查看你的*完整程序*,并且我们还需要通过更改代码来了解您正在使用的操作系统,编译器和IDE(如果有的话),以及*完全*这种“调试模式”的工作方式?在调试器中单步执行? (哪个调试器?)最后,看到引发这个问题的文件会很有帮助。 – zwol