太自由

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

/*
思路:用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("无法打开此文件\n");
//如果打开失败,则终止程序
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”此时已经超过了文件名数组的长度)。

posted on 2015-09-15 10:49  太自由  阅读(431)  评论(0编辑  收藏  举报