Day4日志
#include <stdio.h> int main(void) { int a; float b; scanf("%d %f",&a,&b); printf("%d %.2f", a,b); return 0; }

今日整理的是输入输出函数的代码

上面的代码是要求输入一个整数以及一个浮点数,通过scanf读取再通过printf输出

scanf函数要求输入的信息必须严格符合它的格式(%d以及%f,要对应格式决定你要输入的类型,到底是整数还是浮点数,亦或是字符),并且可以看到scanf输入的要求在变量名前加上取址符,可以简单理解为通过scanf函数向两个变量所在的地址输入了数据。

#include <stdio.h> int main() { char str[100]; printf("Enter a string: "); fgets(str, sizeof(str), stdin); printf("The string you entered is: "); fputs(str, stdout); return 0; }

fgets函数从输入流读取字符串,此处str便是字符串string的缩写。fgets函数的优点在于允许指定读取的最大字符数,从而避免了缓冲区溢出的问题。因此,fgets() 是推荐使用的字符串输入函数。

fgets函数的语法格式便是(str(此处是存放字符串的起始地址)sizeof(str)读取的字符串长度,需要注意的是fgets能读取的字符数量为n-1,因为最后的终止符\0也包含在这读取字符数中;stdin以为标准输入,stdout以为标准输出。

fputs函数使用跟puts非常类似,唯一需要注意的就是fputs输出后不会自动换行,需要手动添加\n。

#include <stdio.h> int main() { char c; printf("请输入一个字符:"); c = getchar(); putchar(c); }
#include <stdio.h> int main() { char ch; printf("Enter a character: "); scanf("%c", &ch); printf("You entered: %c\n", ch); return 0; }

都是要求输入一个字符,这两个代码都能实现此功能,getchar的作用就是从标准输入中读取一个字符,如果输入的字符为abcd,那也只会输出a,需要搭配循环while函数使用,同样putchar也是打印出一个字符。但在本体泛用性上就不如scanf函数,毕竟scanf只要按照其格式输入能输入的数据类型更多。