《顺序读写数据文件(怎样向文件读写字符)——例子》

//从键盘输入一些字符,逐个把他们送到磁盘上去,直到用户输入一个“#”为止。

/*
思路:用fgetc函数从键盘逐个输入字符,然后用fputc函数写到磁盘文件中即可.
*/

//源程序如下:

#include<stdio.h>
#include<stdlib.h>
int main()
{
//定义一个FILE类型的指针变量
FILE *fp;
char ch,filename[50];
printf("请输入文件名:");
scanf("%s",filename);
//打开输出文件并使fp指向该文件
if((fp=fopen(filename,"w"))==NULL)
{
//如果打开时出错,就输出打不开的信息
printf("无法打开此文件 ");
//如果打开失败,则终止程序
exit(0);
}
//用来接收最后输入的回车符
ch = getchar();
printf("请输入一个准备存储到磁盘的字符串(以#号结束);");
ch = getchar();
while(ch!='#')
{
//想磁盘文件输出一个字符
fputc(ch,fp);
//将输出的字符显示在屏幕上
putchar(ch);
//再接收从键盘输入的一个字符
ch = getchar();
}
//关闭文件
fclose(fp);
//想屏幕输出一个换行符
putchar(10);
return 0;
}

注意:第一遍运行过程中出现了<Run-Time Check Failure #2-Stack around the variable 'filename' was corrupted>这样的错误,检查后发现是因为

在定义文件名char filename[10]数组时 数组长度过小导致 (因为我在输入时,输入的事“f:\FILE_1\file.txt”此时已经超过了文件名数组的长度)。

原文地址:https://www.cnblogs.com/sun-/p/4809585.html