目录
前提须知:
函数介绍:
fputc:
fpuct写到文件中,这个可以叫做文件流。
文件效果:
若要将fputc写入屏幕中,可以采取以下代码操作:
屏幕效果:
fgetc:
使用fgetc从标准流中读取数据。—从键盘中读取数据并使用变量接收和使用printf打印
屏幕结果:输入字符q,由printf打印键盘输入的字符q
用fgetc读取文件:读取文件内容后用变量接收,并使用printf打印出来
文件数据:
屏幕效果:
进行多次读取、接收、打印:
进行多次读取、接收、并打印的结果:
fgetc的内涵:
注意,当读取的次数超过了字符的个数,那么会如以下所示:
读取文件中的数据:
屏幕效果:
使用fputc和fgetc进行文件拷贝操作:
打开部分:
读写部分(拷贝部分):
关闭部分:
前提须知:
文件操作的步骤:
- 打开文件
- 读/写文件
- 关闭文件
函数介绍:
- fgetc:一次只读取一个字符
- fputc:一次写一个字符
注意:输出是写——“w”,输入是读——“r”
fputc:
fpuct写到文件中,这个可以叫做文件流。
int main()
{
FILE * pf = fopen("test.txt","w");
if(pf == NULL)
{
perrot("fopen");
return 1;
}
//写文件
fputc('x',pf);
fputc('y',pf);
fputc('z',pf);
fputc('q',pf);
fclose(pf);
pf = NULL;
return 0;
}
文件效果:
若要将fputc写入屏幕中,可以采取以下代码操作:
int main()
{
fputc('b', stdout);
fputc('i', stdout);
fputc('t', stdout);
return 0;
}
stdout是标准输出流, 之前的pf是一个文件指针,fpuct可以使用任何输出流。
屏幕效果:
标准输入流、输出流详情:http://t.csdn.cn/bi7Q9http://t.csdn.cn/bi7Q9
fgetc:
使用fgetc从标准流中读取数据。—从键盘中读取数据并使用变量接收和使用printf打印
int main()
{
int ch = fgetc(stdin);
printf("%c\n",ch);
return 0;
}
屏幕结果:输入字符q,由printf打印键盘输入的字符q
用fgetc读取文件:读取文件内容后用变量接收,并使用printf打印出来
int main()
{
FILE* pf = fopen("data.txt","r");
if (pf == NULL)
{
perror("fopen");
}
//读文件
int ch = fgetc(pf);
printf("%c\n",ch);
fclose(pf);
pf = NULL;
return 0;
}
文件数据:
屏幕效果:
将文件中的数据读取到屏幕上,但是fgetc一次只能读取一个字符,所以在屏幕上显示的只有第一个字符。
进行多次读取、接收、打印:
//读文件
int ch = fgetc(pf);
printf("%c\n",ch);
int ch = fgetc(pf);
printf("%c\n",ch);
int ch = fgetc(pf);
printf("%c\n",ch);
进行多次读取、接收、并打印的结果:
fgetc的内涵:
这个其实证明了fgetc会在文件内部布设一个指针,每一次读取完后,指针向后,指向后面的一个字符,关闭文件,这个指针会重置位置。
注意,当读取的次数超过了字符的个数,那么会如以下所示:
读取文件中的数据:
//读文件
int ch = fgetc(pf);
printf("%c\n",ch);
int ch = fgetc(pf);
printf("%c\n",ch);
int ch = fgetc(pf);
printf("%c\n",ch);
int ch = fgetc(pf);
printf("%c\n",ch);
屏幕效果:
使用fputc和fgetc进行文件拷贝操作:
打开部分:
FILE* pfread = fopen("datal.txt","r");
if (pfread == NULL)
{
perror("fopen-1");
return 1;
}
FILE * pfwrite = fopen("data2.txt","w");
if (pfwrite == NULL)
{
perror("fopen-2");
fclose(pfread);
pfread = NULL;
return 1;
}
打开文件部分,分别打开两个文件,第一个文件是读的,第二个文件是写的,当然如果写的文件出错了,那么读的文件也没有必要存在了,所以当写的文件打开出错后便关闭读的文件。
读写部分(拷贝部分):
//读文件 - 写文件
int ch = 0;
while ((ch = fgetc(pfread)) != EOF)
{
fputc(ch, pfwrite);
return 0;
}
循环部分,读取一个文件,把读取的字符使用变量接收,然后让fpuct将变量内容写入文件中。
关闭部分:
fclose(pfread);
pfread = NULL;
fclose(pfwrite);
pfwrite = NULL;