c语言 文件读取 字符 到一个字符数组

假设字符数组为p[i],读取文件里面的字符直到结束为止。这个代码应该是怎么的。求大神啊,不会啊,~~~~(>_<)~~~~... 假设字符数组为 p[i],读取文件里面的字符直到结束为止。这个代码应该是怎么的。求大神啊,不会啊,~~~~(>_<)~~~~ 展开
 我来答
风若远去何人留
推荐于2017-09-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450129
专业C/C++软件开发

向TA提问 私信TA
展开全部

可以通过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;
}
小白聊电子科技
高粉答主

2020-05-17 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75463

向TA提问 私信TA
展开全部

1、首先打开Dev-C++软件,单击文件---->另存为,保存源文件

2、在保存文件对话框中,将保存类型选择为C,文件名为输出宽字符。

3、首先,定义头文件的,如下图所示。

4、接着,定义主函数名。定义一个宽字符类型的变量wstr,类型用wchar_t表示。

5、提示输入宽字符型变量,在键盘输入任意的宽字符。最后,输出宽字符变量,用wprintf命令实现输出。

6、运行程序,在屏幕输入任意的宽字符,按下回车键就会输出对应的宽字符。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-09-19 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:887万
展开全部

一、对文件的读和写是最常用的文件操作。在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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaixingui2012
推荐于2017-10-12 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6417万
展开全部
#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;
}
更多追问追答
追问
ch不是字符型的吗?
追答
有什么问题?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a2515c7
2012-11-04 · 超过30用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:67.8万
展开全部
废话不多说,直接上码:
#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;
追问
十分感谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式