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

2024-11-15 09:49:23
推荐回答(5个)
回答1:

可以通过fgetc函数,将字符读取出来,并赋值到数组的对应位置上。

fgetc声明在stdio.h中,其原型为

int fgetc(FILE *fp);

功能为从打开的文件fp中读取一个字符,并返回。

当读取成功时,返回读取到的字符的ascii码值,否则返回EOF。


以下是逐个读取字符,存于字符数组,直到读完整个文件的例子。

#include 
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;
}

回答2:

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

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

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

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

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

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

回答3:

一、对文件的读和写是最常用的文件操作。在C语言中提供了多种文件读写的函数:
  1.字符读写函数  :fgetc和fputc
  2.字符串读写函数:fgets和fputs
  3.数据块读写函数:freed和fwrite
  4.格式化读写函数:fscanf和fprinf

使用fscanf("%c",&c)即可读取文本当中的字符。

二、例程:

#include
#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;
}

回答4:

#include
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;
}

回答5:

废话不多说,直接上码:
#include
#include
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;