C/C++编程学习 - 第1周 ③ 数组、输入输出

数组

C 语言支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

声明数组

在 C语言 中要声明一个数组,需要指定元素的类型和元素的数量,定义格式如下:

定义格式:[修饰语(可省略)] [数据类型] [数组名(一个或多个)];

要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:

double balance[10];

初始化数组

可以逐个初始化数组,也可以使用一个初始化语句,如下所示:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

花括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目。

例如:

int a[5];				//定长数组
int b[] = {1, 2, 3};	// 初始化一个为int类型长度为3的一维数组
const char c1[] = "ACM";// 字符串即字符数组
const char c2[] = {'A', 'C', 'M'};	// 和上面定义效果一致
int vec[3][4];						// 二维数组
int vec[][3] = {1, 2, 3, 1, 2, 3};	// 初始化一个为int类型2x3的二维数组

输入输出

输入输出参考

格式化输入输出

格式化控制符说明
%c和%hhdchar
%hx以16进制的 输出short类型的整数
%i/%dint
%uunsigned int
%lldlong long
%lluunsigned long long
%I64d__int64
%I64uunsigned __int64
%x/%o十六进制/八进制
%#x/%#o显示各进制数前缀
%f/%lf/%Lffloat/double/long double
%g/%lgfloat/double去掉了尾随的0
%s读入一个字符串,遇空格、制表符或换行符结束。
%paddress
%e指数形式,科学计数法
%nd 或 %nlld 等也可以作为占位符打印整数数字,n是一个整数。打印结果一定占n个位置,空位置补充空格字符
%-nd 或 %-nlld 等打印结果也占n个位置,空位置出现在右边
%0nd 或 %0nlld 等打印结果也占n个位置,空位置用字符‘0’填充
%n.mf 或 %n.mlf 或%n.mLf可以用来打印浮点数,打印结果中整个数字占n个位置,小数点后面占m个位置。
//%d - 0 m.n |或者h 格式字符
//%转换说明的开始(占位符)
//-表示左对齐,默认是右对齐。
//0表示空位填0,省略则空位不填。
//m.n : m是域宽,指对应的输出项在输出设备占用多少个字符的宽度。n是精度,输出浮点数的时候,小数点后面的位数,默认是6。

getchar() & putchar() 函数

int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。我们可以在循环内使用这个方法,以便从屏幕上读取多个字符。

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

例如:

#include <stdio.h>
int main()
{
	int c;
	printf("Enter a value :");
	c = getchar();
	printf("You entered: ");
	putchar(c);
	printf("\n");
	return 0;
}

运行结果如下:

Enter a value :shuiwa
You entered: s

gets() & puts() 函数

char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。

int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到 stdout。

例如:

#include <stdio.h>
int main()
{
	char str[100];
	printf("Enter a value :");
	gets(str);
	printf("You entered: ");
	puts(str);
	return 0;
}

运行结果如下:

Enter a value :shuiwa
You entered: shuiwa

scanf() 和 printf() 函数

int scanf(const char *format, …) 函数从标准输入流 stdin 读取输入,并根据提供的 format 来浏览输入。

int printf(const char *format, …) 函数把输出写入到标准输出流 stdout ,并根据提供的格式产生输出。

format 可以是一个简单的常量字符串,也可以分别指定 %s、%d、%c、%f 等来输出或读取字符串、整数、字符或浮点数。还有许多其他可用的格式选项,可以根据需要使用。如需了解完整的细节,可以查看这些函数的参考手册。参考手册可以在这里下载:下载地址,如果积分/C币不够下载的话,可以关注微信公众号水蛙编程,回复“资源”,就可以下载了。

举个例子:

#include <stdio.h>
int main()
{
	char str[100];
	int i;
	printf("Enter a string and a value :");
	scanf("%s %d", str, &i);
	printf("You entered: %s %d \n", str, i);
	return 0;
}

运行结果如下:

Enter a string and a value :shuiwa 1
You entered: shuiwa 1

scanf() 期待输入的格式与我们给出的 %s 和 %d 相同,这意味着我们必须提供有效的输入,比如 “string integer”,如果我们提供的是 “string string” 或 “integer integer”,它会被认为是错误的输入。另外,在读取字符串时,只要遇到一个空格,scanf() 就会停止读取,所以 “this is test” 对 scanf() 来说是三个字符串。

本周其他文章:

C语言程序设计专栏

C/C++编程学习 - 第1周 ① 第一个C语言程序

C/C++编程学习 - 第1周 ② 基本语法、数据类型和变量

C/C++编程学习 - 第1周 ③ 数组、输入输出

C/C++编程学习 - 第1周 ④ 常量、判断和循环

C/C++编程学习 - 第1周 ⑤ 函数、指针

C/C++编程学习 - 第1周 ⑥ 结构体、位域

C/C++编程学习 - 第1周 ⑦ 头文件、强制类型转换、递归

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水蛙菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值