C 来自fget(filePointer)的返回值不';不改变

C 来自fget(filePointer)的返回值不';不改变,c,fgetc,C,Fgetc,我尝试使用unsigned char ch1=fgetc(filePointer)提取字符,但返回的值始终是255。这是我的密码: #include <stdio.h> #include "anotherCFile.c" int main(int argc, char **argv) { int ch; FILE* filePointer; filePointer = fopen("text.txt", "w+"); ch = fgetc(stdin)

我尝试使用
unsigned char ch1=fgetc(filePointer)提取字符
,但返回的值始终是
255
。这是我的密码:

#include <stdio.h>
#include "anotherCFile.c"
int main(int argc, char **argv)
{
    int ch;
    FILE* filePointer;
    filePointer = fopen("text.txt", "w+");
    ch = fgetc(stdin);
    while (ch!=EOF) {
        fputc(ch, filePointer);
        ch = fgetc(stdin);
}
    unsigned char ch1 = fgetc(filePointer);
    fclose(filePointer);
    printf("%c", ch1);
    return 0;
}
#包括
#包括“另一个文件c”
int main(int argc,字符**argv)
{
int-ch;
文件*文件指针;
filePointer=fopen(“text.txt”,“w+”);
ch=fgetc(标准偏差);
while(ch!=EOF){
fputc(ch,filePointer);
ch=fgetc(标准偏差);
}
无符号字符ch1=fgetc(文件指针);
fclose(文件指针);
printf(“%c”,ch1);
返回0;
}
对于我检查过的任何输入(s.a.
ABC
),输出为
。当我更改行
printf(“%c”,ch1)
printf(“%d”,ch1)输出总是
255
。我想获取我在输入中输入的字符


(正确创建了
text.txt
文件)。谢谢。

当您写入
*文件ptr
时,它的指针处于高级状态,并设置为文件末尾,准备添加下一个字符。 要在不重新打开文件和重用同一文件指针的情况下读回一些数据,可能需要先倒带指针

尝试添加

fseek(filePointer, 0, SEEK_SET);

无符号字符ch1=fgetc(文件指针)时读回数据之前
filepointer
指向
EOF(-1)
,在下一条语句中,您将打印
ASCII
值,该值为
255(bcz-ch声明为无符号)

EOF
定义为
#定义EOF(-1)

我想获取我在输入中输入的字符?阅读前,请执行倒带()或fseek()

 rewind(filepointer);/* this is required to get first char of file */
 unsigned char ch1 = fgetc(filePointer);
 fclose(filePointer);
 printf("%c", ch1);

fgetc
返回一个int.yes@AnttiHaapala
fgetc()
返回该语句中的
int
,即
-1
,并将其分配给
ch1
,声明为
unsigned char
,这是为了指出您应该更清楚地知道并显示读取的字符存储在
int
类型的变量中:D
 rewind(filepointer);/* this is required to get first char of file */
 unsigned char ch1 = fgetc(filePointer);
 fclose(filePointer);
 printf("%c", ch1);