❶ c语言,不能读取文件中的内容
你要打开读的文件必须已存在,已有正确内容, b 是2进制文件噢。
// struct USER {..........} 已定义
void main(){
FILE *fp;
char filename[]="my.dat"; // 如果文件名是my.dat
struct USER user; // 如果已定义结构USER, 这里声明user
if((fp=fopen(filename,"rb"))==NULL){printf("open %s error\n",filename); exit(0);}
fread(&user,sizeof(user),1,fp);
printf("password=%s",user.password);
....
❷ C语言文件读取时读不到文件
1、使用fopen、fread、fwrite等C语言标准库中的文件I/O函数即可对文件进行打开、读取、写入操作。下面的程序创建一个.bin的文件,然后再从里面读取数据。
#include
<stdio.h>
int
main()
{
FILE*
pFile;
float
buffer[]
=
{
2.0
,
3.0
,
8.0
};
pFile
=
fopen("myfile.bin"
,
"wb");
//
打开文件写操作
fwrite(buffer
,
1
,
sizeof(buffer)
,
pFile);
//
把浮点数组写到文件
myfile.bin
fclose(pFile);
//
关闭文件
float
read[3];
pFile
=
fopen("myfile.bin"
,
"rb");
//
重新打开文件读操作
fread(read
,
1
,
sizeof(read)
,
pFile);
//
从文件中读数据
printf("%f\t%f\t%f\n",
read[0],
read[1],
read[2]);
fclose(pFile);
//
关闭文件
return
0;
}
2、bin文件一般是指的二进制文件,它往往具有两种形式,一种是某种系统平台的可执行文件格式,比如windows平台的PE文件格式,Linux平台的ELF文件格式,另外一种是提取的一段二进制代码,比如系统的主引导记录mbr,就是一个包含512个字节的程序,用c语言对这类文件进行读取时,必须按一定格式进行解析。而且常用的方法不是使用C语言的I/O操作,而一般使用系统提供的文件内存映射方法。
❸ C语言文件的读取和写入不成功是什么原因
使用fopen的r方式可以实现读取,用w+方式可以实现写入。1.fopen的函数原型:FILE * fopen(const char * path,const char * mode); fopen函数的第一个参数是文件路径,第二个参数是打开方式,有以下几种方式:r 以只读方式打开文件,该文件必须存在。r+ 以可读写方式打开文件,该文件必须存在。rb+ 读写打开一个二进制文件,允许读数据。rw+ 读写打开一个文本文件,允许读和写。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)wb 只写打开或新建一个二进制文件;只允许写数据。wb+ 读写打开或建立一个二进制文件,允许读和写。wt+ 读写打开或着建立一个文本文件;允许读写。at+ 读写打开一个文本文件,允许读或在文本末追加数据。ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno中。
❹ c语言 读取文件失败
读取文件失败,很有可能是代码问题,参考代码如下,注意注释:
#include "stdio.h"
#include <stdlib.h>
int main(int argc, char* argv[])
{
FILE *fp;
int i,t,sum=0; //sum需要初始化为0
fp=fopen("d:\\1.txt","r"); //打开文件
if(!fp)
{
printf("打开文件失败\n");//确认文件打开
exit(1);
}
for(i=0;i<3;i++)
{
fscanf(fp,"%d",&t); //这里使用的应该是fscanf,而不是scanf
sum=sum+t;
}
fclose(fp);
printf("%d",sum); //这里应该这么写,先前的printf(sum); 写法是错的
return 0;
❺ 求解答。C语言,加密后无法读入文件内
你的程序中根本没有调用读文件的函数。
如果要读取,先fseek到文件开头,然后就可以用fgetc或者fread逐个字符读出了。
❻ C语言中在进行读入文件的时候为什么总是找不到文件
\0不是读入的,是程序自动加上的,表示一个串或一个行读取完成的结束位置,你只需要处理\0之前的数据,到\0就不要继续处理了。这个结束符总要占用一个字节的内存位置.
对于二进制文件用fread读取,就不需要为这个\0预留位置了
❼ c语言 文件读取 为什么不能读取成功
在写入时,文件指针移动到文件末尾去了,所以你在读取时失败了,使用fseek将文件指针跳转到文件头
❽ c语言重新运行程序,文件读取不了,怎么解决
可能是因为文件打开着呢,你需要做的就是关闭这个文件,然后在重新启动程序,应该就可以了