c语言 文件读取 字符 到一个字符数组可以通过fgetc函数c语言中用于读写的函数,将字符读取出来,并赋值到数组c语言中用于读写的函数的对应位置上 。
fgetc声明在stdio.h中 , 其原型为
int fgetc(FILE *fp);
功能为从打开c语言中用于读写的函数的文件fp中读取一个字符,并返回 。
当读取成功时,返回读取到c语言中用于读写的函数的字符的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语言 向文件读写数据的函数问题fclose(fp):函数fclose()关闭给出的文件流, 释放已关联到流的所有缓冲区. fclose()执行成功时返回0,否则返回EOF.
加上这一句是为了保护c语言中用于读写的函数你的文件如果不写这句那么别的程序也可以随意的对该文件进行写入这样你的文件就是乱套了 。
首先楼主要搞清楚getchar()是什么意思
getchar() 相当于 getc(stdin)也就是从stdin缓冲流里面读数据你写这句也是为了防止你输入字符后后面还有残余
但是你第二个是读文件数据流根本就没有读缓冲流所以不写那句也可以的
不知道楼主明白否?
补充回答:
楼主没有弄明白什么是EOFEOF常被作为文件结束的标志 。EOF 的值通常为 -1
它不是字符串c语言中用于读写的函数他相当于宏定义它是不会被写入到文件当中的
如楼主还有疑问直接hic语言中用于读写的函数我吧
c语言中进行文件读写的函数是?C语言对文件进行读取之前需要先打开文件,然后再进行读写,读写完之后关闭文件 。
可以使用两组函数实现:
一、C语言库函数
打开文件:fopen
读写(一般对应成对使用):
fgetc---fputcfgets---fputsfread---fwrite
关闭文件:fclose
二、Linux系统函数
打开文件:open
读写(一般对应成对使用):read---write
关闭文件:close
用C语言的函数创建、打开和读写文件#include stdio.h
void main(int argc,char *argv[]) //命令行参数
{
int ch;//定义文件类型指针
FILE *fp;//判断命令行是否正确
if(argc!=2)
{
printf("Error format,Usage: display filename1\n");
return; //键入了错误的命令行 , 结束程序的执行
}
//按读方式打开由argv[1]指出的文件
if((fp=fopen(argv[1],"r"))==NULL)
{
printf("The file %s can not be opened.\n",argv[1]);//打开操作不成功
return;//结束程序的执行
}
//成功打开了argv[1]所指文件
ch=fgetc(fp); //从fp所指文件的当前指针位置读取一个字符
while(ch!=EOF) //判断刚读取的字符是否是文件结束符
{
putchar(ch); //若不是结束符 , 将它输出到屏幕上显示
ch=fgetc(fp); //继续从fp所指文件中读取下一个字符
} //完成将fp所指文件的内容输出到屏幕上显示
fclose(fp); //关闭fp所指文件
}
求c语言读取写入文本文件的函数实现C语言标准库提供了一系列文件I/O函数用于文件操作c语言中用于读写的函数 , 比如fopen()用于打开文件、fread()、fwrite()用于读写文件、fseek()用于设置操作位置等等c语言中用于读写的函数 , 一般C语言教程上都有文件I/O一章c语言中用于读写的函数,细致内容c语言中用于读写的函数 , 可以找本教科书学习一下 。下面c语言中用于读写的函数的示例 , 是向名为1.txt的文件附加hello world字符串 。
#include stdio.h
#include string.h
int main()
{
FILE *fp = fopen("1.txt", "a ");
if (fp==0)
{
printf("can't open file\n");
return 0;
}
fseek(fp, 0, SEEK_END);
char sz_add[] = "hello world\n";
fwrite(sz_add, strlen(sz_add), 1, fp);
fclose(fp);
return 0;
}
或
#includestdio.h
struct stu
{
char name[10];
int num;
int age;
char addr[15];
}boya[2],boyb[2],*pp,*qq;
main(){
FILE *fp;
char ch;
int i;
pp=boya;
qq=boyb;
if((fp=fopen("stu_list","wb "))==NULL){
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("\ninput data\n");
for(i=0;i2;i,pp)
scanf("%s%d%d%s",pp-name,pp-num,pp-age,pp-addr);
pp=boya;
for(i=0;i2;i,pp)
fprintf(fp,"%s %d %d %s\n",pp-name,pp-num,pp-age,pp-addr);
rewind(fp);
for(i=0;i2;i,qq)
fscanf(fp,"%s %d %d %s\n",qq-name,qq-num,qq-age,qq-addr);
printf("\n\nname\tnumberageaddr\n");
qq=boyb;
for(i=0;i2;i,qq)
printf("%s\t]}%s\n",qq-name,qq-num, qq-age,qq-addr);
fclose(fp);
}
c语言中有哪些函数C语言输入输出函数有很多 , 标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
【c语言中用于读写的函数 c语言读写操作】putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count , fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针 。
对fread
来说 , 它是读入数据的存放地址 。
对fwrite来说 , 是要输出数据的地址(均指起始地址) 。
size:
要读写的字节数 。
count:
要进行读写多少个size字节的数据项 。
fp:
文件型指针 。
c语言中用于读写的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言读写操作、c语言中用于读写的函数的信息别忘了在本站进行查找喔 。
推荐阅读
- C语言程序设计骂人的话,c语言程序设计题库及答案
- 关于ios有款按顺序翻牌的软件的信息
- 爱情正在直播设备,爱情正在直播主题曲
- mysql怎么查询连接池 mysql查看连接池
- CPU是什么编码,CPU开票编码
- u盘插电脑上为什么那么烫,u盘插在电脑上为什么会发热
- 直播间视频拍摄技巧,直播怎么拍段子
- c语言数学函数库对数 c语言实现对数运算
- 鸿蒙系统和没有鸿蒙的区别,鸿蒙系统和原来有什么区别