"C语言本身没有输入输出语句”这句话对吗?

如题所述

"C语言本身没有输入输出语句”这句话对。

在C语言中,没有输入输出语句,对文件的读写都是用库函数来实现的。ANSI规定了标准输入输出函数,用它们对文件进行读写。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分,是经过模板化了的原有标准库中的iostream部分。

扩展资料:

不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用。

标准输入输出函数有fopen、fread、fwrite、fclose、fflush、fseek、fgetc、getc、getchar、fputc、putc、putchar、fgets、gets、printf、fprintf、sprintf、scanf、fscanf、sscanf、fgetops、fsetops、ftell、rewind、freopen、setvbuf、remove、fileno、fdopen等。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-13
C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分。不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用,便于在各种计算机上实现。各种版本的C语言函数库是各计算机厂商针对某一类型计算机的情况编写的,并且已编译成目标文件(.obj文件)。它们在连接阶段与源程序经编译而得到的目标文件相连接,生成一个可执行的目标程序。如果在源程序中有printf函数,在编译时并不把它翻译成目标指令,而是在执行阶段调用已被连接的函数库中的printf函数
第2个回答  2017-07-25
对的 这是个很经典的论题 记住C本身不提供输入输出 而是通过函数来实现
先说printf 这个本就不是输出函数 而是打印 只是因为默认的输出流是你的电脑屏幕 同样输出 scanf也是一样的 输入流默认在键盘 你不妨看一下重定向
比如编译代码后有a.exe这个程序 在控制台下直接敲a.exe会从你的键盘接收数据 在屏幕输出 但你敲a.exe>>data.txt 的话 它就会从data这个文本中接收数据 而不是键盘 同理 你用<<的话 屏幕就没有任何显示了 这是因为你把输出输入流重定向到了文件中 这相当于简单的FILE指针
再来说函数这个东西 在Linux这个系统中 你可以在HOME下找到Dev这个文件夹 里面是你的硬件端口 想要使用外接的屏幕或者什么的 直接使用就可以了 而C中没有 都是调用Stdio.h中的方法 即自定义的函数 只不过这里它已经写好了 你直接调用就好了
这也是为什么C程序需要头文件 而在Linux下需要写的是文件路径的原因
第3个回答  2012-03-19
C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的。在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数。在使用他们时,千万不要误认为他们是C语言提供的“输入输出语句”。printf和scanf不是C语言的关键字,而只是函数的名字。C提供的函数以库的形式存放在系统中,它们不是C语言文本中的组成部分。不把输入输出作为C语言提供的语句的目的是使C语言编译系统简单,,因为将语句翻译成二进制的指令是在编译阶段完成的,没有输入输出语句可以避免在编译阶段处理与硬件有关的问题,可以使编译系统简化,而且通用性强,可移植性好,对各种型号的计算机都适用,便于在各种计算机上实现。各种版本的C语言函数库是各计算机厂商针对某一类型计算机的情况编写的,并且已编译成目标文件(.obj文件)。它们在连接阶段与源程序经编译而得到的目标文件相连接,生成一个可执行的目标程序。
如果在源程序中有printf函数,在编译时并不把它翻译成目标指令,而是在执行阶段调用已被连接的函数库中的printf函数。

来自本条问题的评论者:350211054,感谢这位评论者,这个才是正确的答案,满意答案是错误的。
第4个回答  推荐于2018-02-28
对啊
printf和scanf都是库里实现的,并不是C语法里面规定的,不是C的关键字本回答被网友采纳