输入函数scanf()、getchar()、fgets()输出函数printf()、putchar()、puts()输入scanf()功能scanf()用于从标准输入通常是键盘中读取格式化的数据。原型int scanf(const char *format, ...)参数format格式控制字符串用来指定输入的数据类型。格式符类似于printf()如%d整型%f浮点型%s字符串等。scanf函数用于从标准输入读取数据%d用于读取整数%s用于读取字符串%c用于读取字符%f用于读取浮点数其他参数是指向变量的指针用来存储从输入中读取的数据。示例int a;float b;scanf(%d %f, a, b); //读取一个整数和一个浮点数返回值返回成功读取的项数即成功匹配的格式说明符的个数如果出现输入错误或达到文件结束则返回负值。注意事项scanf可能会跳过空白符空格、换行、制表符等而不处理输入缓冲区中残留的数据。scanf的输入非常严格如果输入的格式与预期的格式不匹配可能会导致读取失败。getchar()功能getchar()用于从标准输入读取一个字符。原型int getchar(void)参数无参数。示例char ch;ch getchar();//读取单个字符返回值返回读取的字符以int形式返回。如果到达文件结束或发生错误则返回EOF通常定义为-1。注意事项getchar()读取的是缓冲区的第一个字符因此它可能会阻塞等待用户输入直到输入换行符后才能读取下一个字符。通常需要与循环结合来逐字符读取输入。fgets()功能用于从输入流读取字符串的函数。相对于gets()fgets()更安全因为它允许指定读取的最大字符数从而避免了缓冲区溢出的问题。因此fgets()是推荐使用的字符串输入函数。原型char *fgets(char *str, int n, FILE *stream);参数str指向字符数组的指针用于存储读取到的字符串。n要读取的最大字符数包括终止符\0。函数最多读取n-1个字符最后一个位置留给字符串终止符\0。stream输入流。通常为标准输入stdin但可以是任何文件流。返回值返回值是指向str的指针表示成功读取的数据。如果在读取过程中遇到文件结束符EOF或发生错误返回NULL。注意事项fgets()会在读取到换行符、读取到n-1个字符或者遇到文件结束符EOF时停止读取。换行符\n会被作为字符串的一部分存储在str中如果读取到的话并在字符串末尾自动添加终止符\0。输出printf()功能printf()用于向标准输出通常是屏幕打印格式化的文本。原型int printf(const char *format, ...)参数format格式控制字符串指定如何格式化输出。常见的格式符有%d整型%f浮点数%s字符串等。其他参数是需要打印的变量。示例int a 5;float b 3.14;printf(a %d, b %.2f\n, a, b);//输出a 5, b 3.14返回值返回成功打印的字符数。如果输出发生错误返回负值。注意事项printf非常灵活可以打印各种类型的数据。需要确保格式控制符和变量类型匹配否则会引发不正确的输出。putchar()功能putchar()用于向标准输出打印一个字符。原型int putchar(int char)参数char要打印的字符传递的字符以int形式表示但其值应是可表示为unsigned char的整数。示例putchar(A);//输出字符‘A’返回值返回输出的字符作为unsigned char类型转换为int返回。如果发生错误返回EOF。注意事项putchar()常用于逐个字符的输出例如打印字符数组中的内容。puts()功能puts()用于向标准输出打印一个字符串并在输出后自动添加换行符。原型int puts(const char *str)参数str要打印的字符串指针。示例puts(Hello, world!);//输出字符串并换行返回值成功时返回一个非负值失败时返回EOF。注意事项puts()在打印结束后自动添加换行符不需要手动加\n。适合用于简单的字符串输出。