如何将文件中的字符指定给char类型变量?(C)
我正在读取一个文件,并试图从该文件中获取第一个字符,并将其分配给一个变量:如何将文件中的字符指定给char类型变量?(C),c,C,我正在读取一个文件,并试图从该文件中获取第一个字符,并将其分配给一个变量:currentChar 我收到以下错误消息: 从类型文件{aka struct\u IO\u FILE} 文件是一种保存元数据的结构(由fopen()填写),其他影响文件读取的函数将其用作参数。您永远不会直接访问文件结构中的内容 文件访问函数之一是,它将文件*作为参数,并返回int——或者EOF(文件结尾)或者如此标识的文件中的下一个字符 char inputFile[] = "hello.txt"; FILE * in
currentChar
我收到以下错误消息:
从类型文件{aka struct\u IO\u FILE}
文件
是一种保存元数据的结构(由fopen()
填写),其他影响文件读取的函数将其用作参数。您永远不会直接访问文件
结构中的内容
文件访问函数之一是,它将文件*
作为参数,并返回int
——或者EOF
(文件结尾)或者如此标识的文件中的下一个字符
char inputFile[] = "hello.txt";
FILE * inFile = fopen(inputFile, "r");
// inFile == NULL means fopen() failed
if ( inFile != NULL )
{
int currentChar;
currentChar = fgetc( inFile );
// check currentChar for EOF, then do something with it
fclose(inFile);
}
else
{
perror( "fopen() failed" );
}
DevSolar给出了一个有用的答案,并对您的错误进行了更正,遵循他的建议可以让您正确阅读文件内容
然而,一次读取一个文件一个字符可能比看起来更微妙:
fgetc()
或plaingetc()
返回EOF
或文件中的一个字节,一个类型为unsigned char
的值,它必须与char
的类型相同,并且不一定代表字符,尤其是如果文件采用多字节编码(如UTF-8)进行编码。这个字节值可以安全地存储到char
变量中,但如何解释它是程序员的责任,具体取决于实际的文件类型和编码。请显示您的代码您的教科书显示了什么?@andretruckle是的,我无意中按enter键提交,因为我想在新的一行上打字,但它提交了这篇文章,哎呀!不习惯使用,所以有一段时间没用过。请阅读这本教科书。请阅读fopen
的手册页。PS:检查你可以使用的返回值。很好的清理!您还可能提示char inputFile[50]=“hello.txt”代码>不足:char inputFile[]=“hello.txt”代码>或常量字符*inputFile=“hello.txt”
是更安全的选择,使用fopen(“hello.txt”,“r”)
更简单。
char inputFile[] = "hello.txt";
FILE * inFile = fopen(inputFile, "r");
// inFile == NULL means fopen() failed
if ( inFile != NULL )
{
int currentChar;
currentChar = fgetc( inFile );
// check currentChar for EOF, then do something with it
fclose(inFile);
}
else
{
perror( "fopen() failed" );
}