C语言程序设计(208)

来源:百度知道 编辑:UC知道 时间:2024/09/20 17:55:29
例子11.2
从键盘输入一些字符,逐个把它们送到磁盘文件中去,直到输入“#”为止。
#include<stdio.h>
main()
{
file *fp;
char ch,filename[10];
scanf("%s",filename);
if((fp=fopen(filename,"w"))==null)
{printf("cannot open file \n");
exit(0);}
ch=getchar();
while(ch!="#")
{fputc(ch,fp);
putchar(ch);
ch=getchar();}
fclose(fp);
}

有几个地方没看懂
1:
scanf("%s",filename);
%s是字符串格式,放在scanf中,就是字符串输入
但为什么后面会是这样
ch=getchar();
getchar()是单个字符输入函数,
这不是有点矛盾吗?
2:
exit(0)
这是什么东西?
有什么作用?
3:
fputc(ch,fp)是把ch中的字符写到文件指针fp指向的文件中,
putchar()是单个字符输出函数,用这个的意图是什么呢?
putchar()后面跟的这个ch=getchar()又是什么意图?

请高手指教

1:
filename被定义为字符数组,所以用%s格式输入,输入的是一组字符串。
ch被定义为字符型的,所以与getchar()不矛盾。
2:
exit(0)是退出函数,在这里是没有打开“filename”文件就退出。
3:
putchar()是用来将你输入文件中的字符在屏幕上打印出来,面跟的这个ch=getchar()是为了在循环中每次接受你输入的字符,所以不矛盾。

scanf("%s",filename)--------这里输入的是文件名字,所以是字符串.
ch=getchar()--------是你从键盘上读入字符的,在这个程序里,你把读入的字符输入到filename指定的文件里了.
exit(0) --------exit函数调用之后程序退出,返回一个0.c语言程序在main函数返回之后程序退出,用exit函数就可以在任何地方退出程序了.
调用exit会释放全局变量.

putchar()------就是把输入的字符再输出一遍,应该没什么意图吧,你可以去掉.
ch=getchar()-----getchar()一次只能读入一个字符,在循环里调用它就是把你输入到缓存的字符全读出来放到字符ch里,知道#号结束

1.不矛盾
scanf("%s",filename)是字符串的输入,再你输入字符的时候从filename[]首地址开始存入;
ch=getchar();从输入端获得一个字符,它在这个程序中的作用主要是为了判断ch是否为"#",如果是的话,停止输入。
2.exit() 用于程序退出,可以理解为结束
exit(0),程序正常结束退出,exit(1),程序非正常结束退出
3.putchar()是为了将写入的字符输出;而后面跟的getchar()还是为了获得结束符“#”。

如下面运行结果:
file.c[Enter]
computer and c#[Enter]
computer and c
press any key to continue……<