当开始学习任何编程语言时,起点总是该语言的基本输入/输出(I/O)系统。输入使你能在程序运行时收集数据,而输出使你能向用户显示某些信息。
当用C语言编码时,你需要为基本的I/O调用正确的标准库函数。你必须始终包括**<stdio.h>**头文件以确保这些函数被加载到你的程序中。
输出
C语言的标准输出流是PC屏幕。也就是说,当你运行一个有信息要输出的C语言程序时,它将被显示在屏幕上。一个流是一系列从一个地方流向另一个地方的字符。
也可以使用另一种输出流,如文件。然而,这是另一个高级话题了。
C语言使用printf() 函数来向屏幕打印一串字符。这串字符(有时称为字面意义)被放在**printf()**函数内部的双引号之间。
#include <stdio.h>int main( void ) { // main function included in every programprintf("Programming is easy!" );}Output displayed:Programming is easy!
从第1行开始,#include <stdio.h>是一个预处理器指令。它告诉预处理器在编译程序前包括I/O头文件**(<stdio.h>)**的内容。
注意,程序的输出不包括 \n。这是因为它是一个转义序列。转义序列是一种具有特殊意义的字符组合,而不是简单的包含在其中的字符。
反斜杠**(\)是一个告诉编译器它要执行特殊输出的字符。例如,\n**意味着要打印一个新行。下一个程序输出(如果有的话)将从这个新行开始。
下表总结了一些常见的转义序列。
| 转义序列 | 说明 |
| \n | 换行。将光标放在下一行的开始处 |
| \\ | 反斜线字符。在字符串中插入反斜线 |
| \t | 水平制表符。将光标放置在下一个制表符处 |
| \" | 双引号。在字符串中插入双引号 |
在空间的本质中,你有时可能需要在你的文本编辑器中把长的横向部分分开。你可以舒服地使用多个**printf()**函数来打印你的信息。
请看下面的例子。
#include <stdio.h>int main( void ) { // main functionprintf(" C is a structured programming language that is strongly typed. Unlike python, you need to put a variable's ");printf ("data type while programming in C.");}
输入
C语言的标准输入流是键盘。这意味着当你的程序提示输入时,它默认期望数据来自键盘。
值得知道的是,输入流可以指向其他东西,如文件。
C语言使用**scanf()**函数来获取用户输入。请看下面的例子。
#include <stdio.h>int main( void ) {int integer1;printf( "Enter an integer" ); // prompt user for responsescanf( "%d", &integer1 ); // read an integerif ((n%2)==0){System.out.println(" Your number is even");}else{System.out.println(" Your number is odd");}}
scanf()函数接收两个参数:一个转换指定器和一个内存地址。在上面的例子中,%d是转换指定符。它告诉scanf()要输入一个整数。%d中的d代表 "十进制整数"。
第二个参数以安培号**(&)开头,在C语言中被称为 "地址运算符",参数&integer1告诉编译器**,从用户那里得到的值应该存储在哪个内存地址。
**scanf()**语句在程序中执行后,编译器等待你输入一个值。你通过输入一个值,然后按回车键(或回车键)来提交。当这个值被分配给你的变量时,程序中对它的任何其他引用将使用相同的值。
用初级程序学习C语言
开始你的编程之旅是一个非常令人兴奋的努力。如果做得不对,它反而会变成一个令人生畏的挑战。
学习东西而不把它们应用到实际情况中,通常是问题所在。换位思考;尝试把自己放在一些有趣的场景中,在那里你可以应用你的知识。用一些初级程序进行练习是保留你新获得的知识的最好方法之一。