❶ C语言中文件的读写实际过程
rb和r其实没多大区别,本质上都是二进制数据流,只不过文本用的二进制数据的意义为ASCII或其它内码。相对于rb/wb重要的一点区别在于,r/w的文本换行格式在不同系统上有区别(DOS/Windows下是回车符CR('\r')+换行符LF('\n'),UNIX/Linux下是LF,MAC下是CR),引起了文件操作的一些细节(例如fputs和fprintf对于字符串末尾的处理)上的差异。至于具体的读写实现,由库函数进行处理。wb/rb方式一般采用缓冲读写,最终借助系统底层的代码实现对外存文件或其它输入/输出流的抽象(包括在内存中建立缓冲区)和位复制(bitwise )。w/r方式在此基础上处理了上述的一些差异性问题。一般情况下,对于缓冲区的操作取决于库函数的实现,对于用户来说是不可见的,因为这不必要(不同平台的实现不能保证一致)。至于键盘这种标准输入设备,被抽象为标准输入流stdin,除了抽象过程本身(由底层系统实现)外,在实现方式上和从外存文件读入没有本质上的区别。====[原创回答团]
❷ C语言 如何一行行读文件
#include#includevoid main(){char b[25];//打开文件FILE *fp;fp = fopen("D:\\a.txt","r");//获取文件内容,每次读一个字符,包括空格for(int i=0;i<25;i++)//fscanf(fp,"%c",&b[i]);fgets(&b[i],2,fp);fclose(fp);//显示内读取容到的内容for(int i=0;i<25;i++)printf("%c",b[i]);}
❸ 怎么用C语言读取文件
#include"stdio.h"intmain(){ FILE*pf=NULL; //文件指针 intfilelen=0; inti=0; char*buf; pf=fopen("D:\\test.txt","r"); //以只读方式打开文件 if(pf==NULL) { return0; } else { //获得文件长度 fseek(pf,0,SEEK_END); //文件指针移到末尾 filelen=ftell(pf); //获得文件当前指针位置,即为文件长度 rewind(pf); //将文件指针移到开头,准备读取 buf=malloc(filelen+1); //新建缓冲区,存储独处的数据 //将缓冲区的数据设置为0 for(i=0;i<filelen+1;i++) buf[i]=0; //读取文件 fread(buf,filelen,1,pf); //关闭文件 fclose(pf); //buf中即为要读出的数据 printf("%s\n",buf); //输出一下数据,你可以随便怎么用 free(buf); //最后记得要释放 } return1;}
❹ 在C语言中,举例说明如何打开一个文本文件,并读入文件中的数据
1.首先,使用VS构建一个新的空项目,然后直接单击ok。
❺ c语言中如何实现读取计算机中的文件
c不是有个OPENFILENAME么,那个就是打开文件对话框啊……比如指定个变量fpath存放选中文件的路径,然后fopen(fpath,)就可以了……OPENFILENAME例子神马的自行度娘吧
❻ C语言如何读取txt文本里面的内容
C语言可以使用fopen()函数读取txt文本里。
示例:
#include <stdio.h>
FILE *stream, *stream2;
void main( void )
{
int numclosed;
/* Open for read (will fail if file "data" does not exist) */
if( (stream = fopen( "data", "r" )) == NULL )
printf( "The file 'data' was not opened
" );
else
printf( "The file 'data' was opened
" );
/* Open for write */
if( (stream2 = fopen( "data2", "w+" )) == NULL )
printf( "The file 'data2' was not opened
" );
else
printf( "The file 'data2' was opened
" );
/* Close stream */
if(fclose( stream2 ))
printf( "The file 'data2' was not closed
" );
/* All other files are closed: */
numclosed = _fcloseall( );
printf( "Number of files closed by _fcloseall: %u
", numclosed );
}
(6)c语言如何读取文件扩展阅读
使用fgetc函数
#include <stdio.h>
#include <stdlib.h>
void main( void )
{
FILE *stream;
char buffer[81];
int i, ch;
/* Open file to read line from: */
if( (stream = fopen( "fgetc.c", "r" )) == NULL )
exit( 0 );
/* Read in first 80 characters and place them in "buffer": */
ch = fgetc( stream );
for( i=0; (i < 80 ) && ( feof( stream ) == 0 ); i++ )
{
buffer[i] = (char)ch;
ch = fgetc( stream );
}
/* Add null to end string */
buffer[i] = '';
printf( "%s
", buffer );
fclose( stream );
}
❼ C语言文件的文本怎么读取
根据你给的文件保存的数据的格式,我猜测每一行是一个学生的信息,格式如下:
序号 姓名 成绩1 成绩2 成绩3 …
知道了题意和题目要求,那么一切将会变得简单起来,请看代码。
#include<stdio.h>#defineREAD_FILE"data.txt"/*要读取的文件的名字*/#defineWRITE_FILE"T_data.txt"/*要写入的文件的名字*/#defineSTU_NUM10/*最大学生人数*/#defineMAX_LEN50/*一行的最大字符数*//**获取总分函数*/intget_sum(charconst*msg){ intsum=0; inttmp; /* *遍历一行字符 */ while(*msg!=''){ /* *以空格为一项成绩的分隔标志 */ tmp=0; while(*msg!=''&&*msg!=''){ /* *char类型数字转int类型数字 */ tmp=(tmp*10)+((*msg)-'0'); msg++; } /* *求总和 */ sum+=tmp; if(*msg==''){ break; } msg++; } returnsum;}intmain(void){ FILE*rfp,*wfp;/*声明读取/写入文件指针*/ charstudent[STU_NUM][MAX_LEN];/*存放读取到的数据缓存数组*/ charch; intsum[STU_NUM];/*成绩总和*/ inti=0; intj=0; intk=0; rfp=fopen(READ_FILE,"r");/*打开数据文件*/ if(rfp==NULL){ perror(READ_FILE); exit(1); } for(i=0;i<STU_NUM;i++){ sum[i]=0; } /* *逐个字符读取文件的内容, *直至遇到文件结束符为止。 */ i=0; while((ch=fgetc(rfp))!=EOF){ /* *遇到换行符表示已经读取完一个学生的资料; *否则继续将数据写入缓存数组中。 */ if(ch=='
'){ student[i][j]=''; j=0; i+=1; }else{ student[i][j++]=ch; } } student[i][j]=''; wfp=fopen(WRITE_FILE,"w"); /* *开始分析数据 *根据文件存放数据的格式,从下标为2的位置开始分析数据。 *当遇到空格时证明后面的数据是成绩,每一科成绩分数均以空格分开。 *printf是显示出来。 *fprintf是写入另一个文件。 */ for(j=0;j<=i;j++){ k=2; printf("%c%c",student[j][0],student[j][1]); fprintf(wfp,"%c%c",student[j][0],student[j][1]); while(student[j][k]!=''){ printf("%c",student[j][k]); fprintf(wfp,"%c",student[j][k]); k++; } printf("'ssumofscoresumis"); fprintf(wfp,"'ssumofscoresumis"); sum[j]=get_sum(&student[j][k]); printf("%d
",sum[j]); fprintf(wfp,"%d
",sum[j]); } /* *记得关闭文件哦。 */ fclose(rfp); fclose(wfp); return0;}
以下是运行结果:
这个程序仅仅是针对你的题目要求来的,文件存放的数据格式不能更改,否则会出错。每一行必须以回车键结束,最后一行的最后一个字符之后什么也不能有。我尽量以你看得懂的方法来写,关键部分都带有注释,有问题不要追问了,自己多思考思考,实在解决不来还是很欢迎可以追问的哦,哈哈哈!!!
❽ C语言用fscanf()函数如何读取文件全部内容
void read_txt(const char* Input, const char* Output){FILE *fin = fopen(Input, "rb");//以二进制读入FILE *fout = fopen(Output, "w");unsigned char ch1,ch2;while(fscanf(fin, "%c%c", &ch1,ch2) != EOF){//直到文件结束 fprintf(fout, "%d%d", ch1,ch2);//以10进制输出}}int main(){ read_txt("D:/IN.txt","D:/OUT.txt");//txt文件目录 return 0;}注:判断文件结束处的语句:fscanf(fin, "%c%c", &ch1,ch2)。其中两个%c之间不能加空格,否则读到的二进制文件会不完整,比源文件少好多个字节
❾ C语言怎么读取某一文件夹下的所有文件夹和文件
读取的代码方式如下:
int main()
{
long file;
struct _finddata_t find;
_chdir("d:\");
if((file=_findfirst("*.*", &find))==-1L)
{
printf("空白!
");
exit(0);
}
printf("%s
", find.name);
while(_findnext(file, &find)==0)
{
printf("%s
", find.name);
}
_findclose(file);
return 0;
}
❿ C语言如何读取文件
C语言读取文件的抄具体步骤如下:
我们需要准备的材料分别是:电脑、C语言。
1、首先我们打开需要读取的文件,点击打开左上角文件中的“另存为”。