输入输出是一个程序很重要的内容
- C语言将所有设备都当作文件。当需要时便会用文件指针将对应的设备文件打开。
- 标准文件 文件指针 设备
- 标准输入 stdin 键盘
- 标准输出 stdout 屏幕
- 标准错误 stder 您的屏幕
- 可以通过命令行或者文件的形式进行输入
- 可以将数据输出到计算机屏幕或保存到文本或二进制文件中
输出到屏幕
- 使用 printf() 用于格式化输出到屏幕。需要在 stdion.h 头文件中声明
#include stdio.h;
printf("%d%f",a,b);
%d是整型输出,%f是浮点型输出
关于printf使用很普遍了,直接跳过。
从屏幕读取 然后输出到屏幕上
- getchar() ,putchar()
- getchar(void) 从屏幕读取下一个可用的字符,并把它返回成一个整型,同一时间只能读取单一字符,配合循环使用。
- putchar(int c) 把字符输出到屏幕上,并返回相同的字符,同一时间只能输出单一字符,配合循环使用。
- gets() , puts()
- char *gets(char *s) 从stdin 读取一行到s 所指向的缓冲区 ,知道一个终止符或 EOF
- int puts(const char *s) 把字符串s和一个尾随的换行符写入到stdout
- scanf() , printf()
-
int scanf(const char *format,...) 从标准输入流stdin 读取输入,并根据提供的format 来浏览输入
-
int printf(const char *format,...) 把输入写入标准输出流stdout,并根据提供的格式产生输出
int get_put_demo() { int c; printf("输入一个字符:"); c = getchar(); printf("\n 你输入的是:"); putchar(c); printf("\n"); char str[100]; printf("输入一行字符:"); //gets( str ); printf("\n 你输入的是:"); //puts(str); printf("\n"); char strc[100]; int inc; printf("输入一行字符:"); scanf_s("%s", strc); scanf_s("%d",&inc); printf("\n 你输入的是: %s %d \n", strc, inc); }
-
在测试中发现了几个问题
- gets(),puts() 函数无反应。介于使用频次低,场景少,因此不深究
- scanf函数在使用时报错,与安全性相关,经过搜寻 加后缀 _s 即可解决
- 在代码中将 strc 与 inc 分开读写,因为在一行读写时会识别到空格,导致整数变为 10
- 还有解决方法是
int i; char c; scanf("%d%[^' '^'\n']", &i, &c);
int i; char c; scanf("%d", &i); while((c=getchar())==' ' || c=='\n'); c = getchar();
基本内容就是这些, 其他深入的内容在使用中学习效果可能更好。