用printf不如puts,用puts不如用.txt
我认识一个初中生,他也是学c语言的。比我接触的久了。但是不知道是不是年纪的关系,他编程序的思维一直很简单,太简单了。
就在上次我还专门录了个短的录像给他,说他为什么。。。
得先说他的程序是什么先。
他程序的名字叫做“逃离死亡医院”
就是问答形式的,scanf 1,2,3。if
跳转。输出,跳转。。扬扬洒洒写了900多行代码,有八百以上的是用printf输出的文本信息。我无语了。他接触不少时间了吧。。。用puts输出不是更好一点,不用每次都在后面加换行符。写的更快,系统运行也快。900多行啊,都是printf()可以看出,他真的喜欢编程,一个14岁的孩子,不容易,傻的可爱吧。这里是对他点赞。
但是用puts我也是没那么有毅力去写。
用puts代替printf,用.txt代替puts。效果不是一般的好。
可以先建个文件夹,写上你像要的对话存成一个文本。用for 循环输出就是链表吧,也可能是指针。
比如先在
c盘一个叫duibai文件夹,里面有好多txt文本。有10句,有一百句都可以。也可以是一个.c文件。里面最好是一些复杂少用的。就是函数分装的好处,一个大牛说过,程序要先会拆,才会写。
FILE *fp;
char ch, filename[40], mode[4];
while ((ch = getchar()) != EOF)
{
gets(filename);gets(mode);
if ((fp = fopen(filename, mode)) != NULL)
{
printf("%s %s ");
fclose(fp);
。。。。
}
}这个是以各种模式打开一个文档,要读还是要写都可以。
上面说到,用for打开一个有一个又不用自己输入文件名的。也可以用结构体。
这个指针方面我也懵懂,所以不讨论,c语言很强大,只有想不到没有做不到。前提是要熟悉语法规则及实现目标功能的逻辑。
在说几句就不说了,还讨论我认识的那个,我不方便说他的名字,实际,我也不知道他的名字。但是有他电话。
他还写了几个画画版。恩,这个在我没有认识到那么多的时候,觉得好厉害啊。但是现在觉得,,,
不是说进步了就觉得牛差了。是我觉得不应该在一个函数或者一个功能上逗留太久。他写的就是围绕这这个语句。。xy光标跳动。
gotoxy一个非标准的goto语句。初学的话接触到dos命令都会欢喜。
但是,这只是一条语句,跟编程一点关系都没有。
就好像上次我在贴吧跟人吵架。说的是这个题:
char fun(char x, char y)
{
if(x)return y;
}
int main()
{
int a ='0', b ='1', c ='2';
printf("%c\n", fun(fun(a, b), fun(b, c)));
}这个程序没错。可以编译试过了。结果是2;
这其实不复杂。就是if (1)说明 成立。1就是对嘛。然后 y是
2。多余的话不说了。
我跟那人吵架说说什么呢?他非说这个跟ascii有关系,还说什么
‘0’跟0不一样的云云。一不一样谁不知道啊。但是跟这题有什么关系呢?就算一样最后都是‘0’和‘0’或者0和0,printf装换一下格式化输出来的,跟他脑中的‘0’跟0不一样的观点。是否相反。
如,
int a =‘0’;//两个都是'0'怎么还是不样呢?
printf(“%d%c”,a,a);
又如
int a =
0;//所以我大骂那人脑参,他说我都比。我也不说了,我明白一个道理,试图与愚蠢的人沟通,智慧让自己变的跟愚蠢一样。
printf(“%d%c”, a, a);
。。。最后看看他在他说特说的观点还他的源代码。说明‘0’跟0还有ascii表什么的。呵呵。咋就不提跟前面那个if(x)之后返回的程序了,这货脑偏的有点离谱。
他的代码,@我之后想证明的。
#include
int main()
{
int a ='0';
int b =0;
printf("%d\n%d\n", a, b);
return 0;
}然后说打脸吗?意思是想打我脸。但是我不同意。我回了下面的代码
#include
int main()
{
int a ='0';
int b =0;
printf("%c\n%d\n", a, b);
return 0;
}谁打谁脸?呵呵
好了不说了,贴上c primer plus 第三章练习代码。
#include
int main(void)
{
const int jkl = 10;
printf("%f", (float) jkl);
return 0;
}//下次,我会讨论const 。