C语言程序设计--输入与输出

2023-02-17,,

C语言的输入



所有的输入都是依赖于C语言函数进行的,这个函数是C语言标准库自带的,定义在头文件<stdio.h>里面,所以,要想使用与输入相关的函数,都需要包含这个头文件

#include <stdio.h>

输入函数gets


这是一个获取输入字符串的函数,其定义如下文,作用是从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。

char * gets(char * string){...}

试验gets


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
char string[100];
printf(BANNER);
gets(string);
puts(string);
return 0;
}

很简单,但是不推荐,因为gets是不安全的,他可以输入任意长度的字符,可以覆盖超过变量定义支持的长度,缓冲区溢出风险大。

输入函数getchar


这是一个获取输入字符的函数,其定义如下文,作用是从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。

int getchar(void){...}

试验getchar


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
char string;
printf(BANNER);
string = getchar();
putchar(string);
return 0;
}

不推荐,因为获取多个字符输入会很麻烦。

输入函数scanf


这是一个获取输入特定数据类型的函数,其定义如下文,函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。

int scanf(const char *format, ...){}

试验scanf


代码如下文

#include <stdio.h>

#define BANNER "Please input:"

int main(void){
char input_char;
int input_int;
char input_string[100];
float input_float;
double input_double;
printf(BANNER);
scanf("%d", &input_int);
printf("%d\n", input_int);
printf(BANNER);
scanf("%c", &input_char);
printf("%c\n", input_char);
printf(BANNER);
scanf("%s", input_string);//这里只能是数组,因为如果是char *,则不知道大小,会发生段错误,这里使用&input_string 效果一样,但是会有warning,不推荐,
printf("%s\n",input_string);
printf(BANNER);
scanf("%f", &input_float);
printf("%f\n", input_float);
printf(BANNER);
scanf("%lf", &input_double);
printf("%lf\n", input_double);
return 0;
}

C语言的输出



所有的输出都是依赖于C语言函数进行的,这个函数是C语言标准库自带的,定义在头文件<stdio.h>里面,所以,要想使用与输出相关的函数,都需要包含这个头文件

#include <stdio.h>

输出函数puts


函数把字符串 s 和一个尾随的换行符写入到 stdout。

int puts(const char *s){...}

试验puts


在试验gets中试验过了puts

输出函数putchar


函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。

int putchar(int c){...}

试验putchar


在试验getchar中试验过了putchar

输出函数printf


函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。

int printf(const char *format, ...){...}

试验printf


在试验scanf中试验过了printf

附录:标准化输入输出的格式:

数据格式类型 输入输出的类型标识符
十进制整数 %d
字符型 %c
整数 %i
浮点数 %e, %f, %g
八进制数 %o
字符串 %s
十六进制书 %x
指针 %p
一个等于读取字符数量的整数 %n
一个无符号整数 %u

C语言程序设计--输入与输出的相关教程结束。

《C语言程序设计--输入与输出.doc》

下载本文的Word格式文档,以方便收藏与打印。

  • 输入和输出的总结(c语言)
    输入和输出的总结(c语言)

    c语言中有多种的输入和输出方式,下面就简单总结一下: 一.输入的三种方式 (1)scanf scanf 函数可以在变量中使用,也可以在数组中使用,当然指针上也能用到,是一个很好的输入函数.scanf是一个格式输入,比如scanf("%d-...

    2023-08-01编程代码,,
  • [总结] I/O输入,输出
    [总结] I/O输入,输出

    I/O输入,输出 第一:先判断到底是输入还是输出,站在程序的立场 第二:判断是传递字节,还是字符,决定管道粗细,字节流是最基本的数据输出管道。字符类型管道专门用来传送文本数据。 Java流的四大父类:1.字节...

    2023-08-01编程代码,
  • 了解一下C++输入和输出的概念
    了解一下C++输入和输出的概念

    我们经常用到的输入和输出,都是以终端为对象的,即从键盘输入数据,运行结果输出到显示器屏幕上。从操作系统的角度看,每一个与主机相连的输入输出设备都被看作一个文件。除了以终端为对象进行输入和输出外,还...

    2023-08-01编程代码,,
  • C++习题 对象数组输入与输出
    C++习题 对象数组输入与输出

    Description 建立一个对象数组,内放n(n<10)个学生的数据(学号、成绩),用指针指向数组首元素,输出第奇数(1,3,5,7)个学生的数据。 Input n和n个学生的学号、成绩 Output 奇数学生的数据 Sample Input 5101 78...

    2023-08-01编程代码,,
  • YTU 2432: C++习题 对象数组输入与输出
    YTU 2432: C++习题 对象数组输入与输出

    2432: C++习题 对象数组输入与输出 时间限制: 1 Sec  内存限制: 128 MB 提交: 1603  解决: 1152 题目描述 建立一个对象数组,内放n(n<10)个学生的数据(学...

    2023-08-01编程代码,,
  • 问题 B: C++习题 对象数组输入与输出
    问题 B: C++习题 对象数组输入与输出

    题目描述 建立一个对象数组,内放n(n<10)个学生的数据(学号、成绩),用指针指向数组首元素,输出第奇数(1,3,5,7)个学生的数据。 输入 n和n个学生的学号、成绩 输出 奇数学生的数据 样例输入 5 101 78.5 102 85...

    2023-08-01编程代码,,
  • 算法题 -- 输入一个Long数组,按要求输出一个等长的Long数组
    算法题 -- 输入一个Long数组,按要求输出一个等长的Long数组

    /** * 输入一个Long数组,按要求输出一个等长的Long数组 * 输出数组的元素值等于,输入数组除相同下标外其他元素的积 * 如:输入[1, 2, 3, 4], 输出[24, 12, 8, 6] * 输出数组:output[0] = input[1] * input...

    2023-08-01编程代码,,
  • 关于OJ的输入和输出(转)
    关于OJ的输入和输出(转)

    ACM竞赛之输入输出以下内容来源于互联网。在ACM程序设计竞赛中,一道题目的所有测试数据是放在一个文本文件中,选手将一道题目的程序提交给评判系统运行,程序从该文件中读取测试数据,再把运行结果输出到另一个...

    2023-08-01编程代码,,