c语言 文件读取 字符 到一个字符数组
假设字符数组为p[i],读取文件里面的字符直到结束为止。这个代码应该是怎么的。求大神啊,不会啊,~~~~(>_<)~~~~...
假设字符数组为 p[i],读取文件里面的字符直到结束为止。这个代码应该是怎么的。求大神啊,不会啊,~~~~(>_<)~~~~
展开
7个回答
展开全部
可以通过fgetc函数,将字符读取出来,并赋值到数组的对应位置上。
fgetc声明在stdio.h中,其原型为
int fgetc(FILE *fp);
功能为从打开的文件fp中读取一个字符,并返回。
当读取成功时,返回读取到的字符的ascii码值,否则返回EOF。
以下是逐个读取字符,存于字符数组,直到读完整个文件的例子。
#include <stdio.h>
int main()
{
char buf[10240];//定义一个足够大的字符数组存文件数据。
int c;//临时变量。
int cnt = 0; //标记目前读到几个字节。
FILE *fp;//文件指针。
fp = fopen("in.txt", "r"); //打开文件。
while(1)
{
c = fgetc(fp); //读一个字节。
if(c == EOF) break; //到文件尾,退出循环。
buf[cnt] = c;//赋值到字符数组中。
cnt ++;//读到的字符增加一个。
}
fclose(fp);//关闭文件。
return 0;
}
展开全部
一、对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数:
1.字符读写函数 :fgetc和fputc
2.字符串读写函数:fgets和fputs
3.数据块读写函数:freed和fwrite
4.格式化读写函数:fscanf和fprinf
使用fscanf("%c",&c)即可读取文本当中的字符。
二、例程:
#include<stdio.h>
#define F_PATH "d:\\myfile\\file.dat"
char s[1000];//字符数组
int i=0;
int main(){
FILE*fp=NULL;//需要注意
fp=fopen(F_PATH,"r");
if(NULL==fp) return -1;//要返回错误代码
while(fscanf(fp,"%c",s+i)!=EOF) printf("%c",s[i++]); //从文本中读入到字符数组当中并在控制台打印出来
fclose(fp);
fp=NULL;//需要指向空,否则会指向原打开文件地址
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main()
{
char p[10240] ; //数组空间要足够大,超过文件中的字符数才可以
FILE *fp ;
fp=fopen("text.txt" , "r");//文件名自己改一下
if ( fp )
{
int i=0;
int ch=0;
while( !feof(fp) )
{
ch=fgetc(fp);
if ( ch==EOF )
break ;
p[i]=ch ;
i++;
}
p[i]=0;//串结束符。
fclose(fp);
}
return 0;
}
int main()
{
char p[10240] ; //数组空间要足够大,超过文件中的字符数才可以
FILE *fp ;
fp=fopen("text.txt" , "r");//文件名自己改一下
if ( fp )
{
int i=0;
int ch=0;
while( !feof(fp) )
{
ch=fgetc(fp);
if ( ch==EOF )
break ;
p[i]=ch ;
i++;
}
p[i]=0;//串结束符。
fclose(fp);
}
return 0;
}
更多追问追答
追问
ch不是字符型的吗?
追答
有什么问题?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
废话不多说,直接上码:
#include <stdio.h>
#include <stdlib.h>
int main(){
int c;
FILE *in, *out;
in=fopen("in.txt","r");
out=fopen("out.txt","w");
while((c=fgetc(in)) != EOF)
fputc(c,out);
fclose(in);
fclose(out);
exit(0)
}
// 以上程序的目的是从 in.txt 中读取每个字符写入 out.txt 文件中
// 要想将读取的字符传入数组中那么需要定义一个足够大的数组空间比如P[100]
// 然后while((c=fgetc(in)) != EOF) P[i++]=c;
#include <stdio.h>
#include <stdlib.h>
int main(){
int c;
FILE *in, *out;
in=fopen("in.txt","r");
out=fopen("out.txt","w");
while((c=fgetc(in)) != EOF)
fputc(c,out);
fclose(in);
fclose(out);
exit(0)
}
// 以上程序的目的是从 in.txt 中读取每个字符写入 out.txt 文件中
// 要想将读取的字符传入数组中那么需要定义一个足够大的数组空间比如P[100]
// 然后while((c=fgetc(in)) != EOF) P[i++]=c;
追问
十分感谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询