编程C本: 帖子 3 – 在c输入发
内容
在以前的帖子, 我们结识了许多程序,打印到屏幕上的一些信息了如指掌. 本文我们将了解如何在C进入生产.
1. 格式字符串数据
此前出台, 数据变量,我会讲一些格式的导入和导出. 这里的招牌描述格式:
- %Ç : 单个字符
- %s : 链
- %ð : 整我们 10 标
- %˚F : 浮数 (首席执行官 5.54 将打印出 5.540000)
- %和 : 浮数 (与指数符号)
- %克 : 浮数 (首席执行官 5.54 打印将打印出 5.54)
- %X : 十六进制无符号整数 (往来 16)
- %该 : 无符号的八进制整数 (往来 8)
- 升 : 与%D使用的前缀, %X, %Ø指示长整型 (例如,LD%)
2. 用printf导出数据
我们使用该函数 的printf 将数据导出到控制台 (从打印装置打印). 上面的格式串组合, 我们考虑一个简单的例子如下.
例 1:
#include <stdio.h> int main() { int a = 12; float b = 13.5; char c = 'Q'; long d = 3454; char* s = "nguyenvanquan7826"; // khai bao kieu chuoi printf("Vi du ve su dung lenh printf\n"); printf("Tong cua %d va %f la %f \n", a, b, a+b); printf("Tich cua %d va %ld la %ld \n", a, d, a*d); printf("Ky tu c la: %c \n", c); printf("Chuoi s la: %s \n", s); printf("Dinh dang so mu cua b la %e \n", b); printf("So he 16 va he 8 cua %d la %x va %o \n", a, a, a); printf("Ma ASCII cua %c la %d", c, c); return 0; }
上面我已经使用了一些控制字符 (\ñ – 下了线) 在以前的帖子中提到的, 您可以查看,如果不是我. 你运行该程序,并绘制自己的意见.
他的解释 1 声明澄清公布我们.
格式字符串放在引号: “”. 分别对应于每个格式类型的变量, 如果另一种类型会导致错误.
还注意,对于整数和字符具有彼此通过ASCII码,所以我们可以在格式%D以及在字符数字代码打印的字符代码通过格式%C. 然而,该变量的性质不改变. 血管性痴呆的命令在C将整数C中的性质,但仍是ASCII码是char类型的变量.
例 2:
#include <stdio.h> int main() { int a = 12; float b = 13.5; char c = 'Q'; long d = 3454; char s[] = "nguyenvanquan7826"; // khai bao kieu chuoi printf("%6d %5.3f %.3f \n", a, b, a+b); printf("%-5d %5ld %5ld \n", a, d, a*d); printf("%5c \n", c); printf("%30s \n", s); return 0; }
你看这个例子中,我们使用的格式%d, %F,但在6D%的中间插入, %5.3˚F. 它的含义如下::
- %5Ç : 出口字符宽度 5
- %5ð : 宽度整数 5
- %20s : 出口环宽度 20
- %5.3˚F : 出口的实际宽度 5 含 3 逗号后的数
- %-5ð : 宽度整数 5 但对齐左
运行程序, 查看查看更多结果. TH如果我们的更小尺寸的广度,数星星的长度? 例如,我们有一些INT A = 1234 但只有在2D%, 为清晰 2 的空间小于罐 4 数字,但结果仍然是全. 你可以试试.
例 3:
把这个问题是假设我们已经证明任何出生日期变量 (例如,右= 12, 胜= 8, 男性= 1992). 请打印格式为DD / MM / YYYY. 意味着我们必须打印出结果 12/08/1992.
#include <stdio.h> int main() { int ngay = 12; int thang = 8; int nam = 1992; printf("KQ: %02d/%02d/%04d\n", ngay, thang, nam); return 0; }
以上, 你注意到我们使用 %02ð 即星? Nhiá是印刷将是数 2 数字, 如果原来的数小于 2 将增加 0 前面足够 2 数字. 实例号 8 会成功 08. 如果您使用%05D将 00008.
3. 使用输入数据的scanf
在前面的例子, 我们只是声明变量,并赋值给变量,但不灵活,因为程序只与预定值工作, 想用不同的数据进行工作,我们必须修改代码, 所以它不是一个好的方案. 一个软件程序是由对许多不同的价值观,可以使用.
因此,数据将包含在所使用的软件是具体的和简单的数据输入到键盘. 我们使用命令 scanf函数 从键盘输入数据 (从扫描单元,其扫描和我们使用的数据来自键盘扫描LEU).
例 1:
#include <stdio.h> int main() { int a; float b; printf("Nhap so nguyen a = "); scanf("%d", &a); printf("Nhap so thuc b = "); scanf("%f", &b); printf("a = %d \t b = %.3f", a, b); return 0; }
使用命令 scanf函数 与用于数据输入的字符串格式组合将是由命令类似于数据 的printf.
注意不要忘记字符 & 每个变量进入之前. 没有脚麻.
例 2:
/* Tinh dien tich hinh chu nhat */ #include <stdio.h> int main() { int a, b; printf("Nhap chieu dai, chieu rong: \n"); scanf("%d%d", &a, &b); printf("Dien tich HCN: %d\n", a * b); return 0; }
在上面的例子, 你看,我们可以使用 1 scanf的命令输入几个变量数据, 每个相应的可变 1 某些格式.
4. 输入字符串用C
4.1 错误输入字符串的scanf
如果使用scanf函数输入您看到之前链条不能输入空格,或者如果你没有输入,然后再输入字符串的字符串. 如果你不相信,你可以尝试后运行该程序:
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30]; printf("Ho va ten cua ban ten la gi? "); scanf("%s", ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); printf("Nguoi yeu cua ban ten la gi? "); scanf("%s", tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
其结果是,你将无法进入爱情的年龄和名字,如下图所示.
其原因是,只能读取数据scanf函数没有空格 (怎么玩, 标签, 进入, ...) 和距离将被存储在键盘缓冲区,所以你只能得到第一个字符串赛前唯一途径 (字 阮), 每个空格后, 下一个值,如果用的下一回合的数据类型相一致,它总是分配给他们,你将不会再进入. 的 您的 材料类型不应该接受, tenNguoiYeu 将接收中接收到的值的下一个值是词 从.
4.2 浮动命令的现象
等现象的现象被称为漂移命令. 如果你现在做输入字符串之前和之后立即这一现象也会发生,因为 scanf函数 刚读正确的格式数量,当你按下回车键即不可读当输入的号码 (输入字符或也可以被认为是链), 它被存储在缓冲和读出的输入值串,当它发现在缓冲器看到的字符输入字符串所以它总是被分配给该字符串.
要输入字符串用空格 (空间) 我们使用功能得到.
输入命令时,不洗前和后的字符串,我们需要清除键盘缓冲区的命令 fflush(标准输入); 进入后,立即.
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30]; printf("Ho va ten cua ban ten la gi? "); gets(ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); fflush(stdin); printf("Nguoi yeu cua ban ten la gi? "); gets(tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
如果你使用Linux时, fflush(标准输入); 将无法正常工作, 您可以通过输入修复 1 进入后临时序列立即. 这种临时链记录只删除字符, 过量的字符串在缓冲液如下 (这种方式也可以,当你在Windows上使用做).
#include <stdio.h> int main() { int tuoi = 0; // khai bao chuoi co toi da 30 ky tu char ten[30], tenNguoiYeu[30], temp[255]; printf("Ho va ten cua ban ten la gi? "); gets(ten); // nhap chuoi khong can dau & printf("Ban bao nhieu tuoi roi? "); scanf("%d", &tuoi); //fflush(stdin); gets(temp); printf("Nguoi yeu cua ban ten la gi? "); gets(tenNguoiYeu); printf("\n====\n"); printf("Ten: %s \nTuoi:%d \nNY:%s \n", ten, tuoi, tenNguoiYeu); return 0; }
5. 解释有关的printf一点点, scanf函数和stdio.h中
5.1 printf和scanf函数中的字母f
如你所知 打印 意味着 在, 扫描 是 扫 或者被称为进入. 那么,为什么他们有信 ˚F 回形成 的printf 和 scanf函数 ?
字 ˚F 这意味着, 格式 (格式). 正如你所见,我们导入或导出变量的值被格式化 % 某事,例如%d是整数, %f为实数,… 和字母 ˚F 这是这样有意义.
5.2 库stdio.h中 ?
在所有的程序不断, 我们总是有 #include <stdio.h>
, 那么是什么?
#include
即意味着包括我们的节目将宣布使用的东西, 但这里是使用图书馆 stdio.h
所以 stdio.h中 什么? STD 看台 标准 , 在 看台 输入, 该 看台 产量, ħ 看台 头 (头 – 头, 在上面 – 因为它是在节目的开头声明). 因此,这意味着 标准输入输出 – 进口标准输出. 我们理解这是程序标准的进口和出口的图书馆服务. 输入标准输出从键盘和输出到屏幕上输入. 也有许多来源从文件导入和导出导入, 从光标进口,… 输出到打印机, 输出文件,… 但他们认为 键盘和屏幕是进口和出口的标准体系.
锻炼
- 在某些任写一个程序和打印值2, 该3, 该4
- 编写一个程序,从键盘读取 3 执行整数天, 月, 并输出到屏幕上在“日/月/年”的形式.
- 读取和写入程序 2 整并打印出的结果 (+), 减法 (-), 乘法 (*), 师 (/). 评审结果划分 2 整.
- 写一个程序,该球体的半径, 计算并打印区域, 球体的体积.
指南: S = 2并且V = ^4πR (4/3)πR^ 3.- 输入一个数字是多少秒, 改变的GIO下制造的分针和时针格式的秒数:砰:闪耀, 每个组件 2 数字. 例 3661 = 01:01:01.
长整型尺寸确实需要新的前缀来先生升, 我尝试运行这样的程序 2 然后删除字母l至%5D%5D但没有故障Ĵ, 所有 2 KQ程序是相同的, 顺便说一下他的伟大的职位先生, 很容易理解为像我这样的Ĵ初学者不明! =)
当你的数据类型是龙,在前置L前缀.
我也想知道
为什么,当你运行它再次停止工作CT杂志?? T_T
#包括
INT主要()
{
焦炭十[30],Dia_chi[50],So_thich[100];
INT权[31],阶梯[12],男;
的printf(“他10 “);
得到(十);
的printf(“他志 “);
得到(Dia_chi);
的printf(“出生日期 “);scanf函数(“%ð”,&对);
的printf(“电梯诞生 “);scanf函数(“%ð”,&阶梯);
的printf(“男性生育 “);scanf函数(“%ð”,&男);
fflush(标准输入);
的printf(“像 “);得到(So_thich);
的printf(“\ñ============== n n”);
的printf(“十: %小号的NDIA: %小号内文出生:%d 吨%d 吨%d 吨 NSO释: %s”,十,Dia_chi,So_thich,对,阶梯,男);
回报 0;
}
我定的DC,然后就停止工作,但他之所以对我先生户解释@@, 这里是你只需重新修复的源文件:
#包括
INT主要()
{
焦炭十[30],Dia_chi[50],So_thich[100];
INT权,阶梯,男;
的printf(“他10 “);
得到(十);
的printf(“他志 “);
得到(Dia_chi);
的printf(“出生日期 “);scanf函数(“%ð”,&对);
的printf(“电梯诞生 “);scanf函数(“%ð”,&阶梯);
的printf(“男性生育 “);scanf函数(“%ð”,&男);
fflush(标准输入);
的printf(“像 “);得到(So_thich);
的printf(“\ñ============== n n”);
的printf(“十: %小号的NDIA: %小号 n”,十,Dia_chi);
的printf(“出生日期:%d /%d /%d n”,对,阶梯,男);
的printf(“像: %s”,So_thich);
回报 0;
}
他评论说,之前,我有你. 你声明数组遣散.
因为你声明的变量和可变日期的月份不正确. 日期是多少, 我立即宣布[31] 意味着 1 排列 31 的名称等[30] 是 1 板 30 字符 (它们合并成链). 随即更改为int, 阶梯, 男. 就是说
亲爱的为Facebook罐到EË请询问一些事情不是你. 你是正在学习语言的C部分学生. 由于在学校这么多é通信问题仍然不知道. 希望他只能加先生教师. EM感谢
您可以发送邮件太: nguyenvanquan7826@gmail.com NHE.
你能告诉我请张贴一些代码段 5 是不是?
#包括
#包括
#包括
//———————————————————————-
INT主要() {
所以浮动;
的printf(“\ñ n tNhap 1 所以: “); scanf函数(“%˚F”, &所以); fflush(标准输入);
的printf(“\ñ平均PHUONG不仅仅是进入了:\吨吨%7.2f”, POW(所以, 2));
的printf(“\ñ比刚进入设置一个PHUONG是:\吨吨%7.2f”, POW(所以, 3));
的printf(“\Ñ n n n n n n n n n n”);
回报 0;
}
//———————————————————————
INT主要() {
INT权, 阶梯, 男;
的printf(“单击右, 月和年: \ñ”); scanf函数(“%ð%D%D”, &对, &阶梯, &男);
系统(“CLS”);
的printf(“权, 月和年 (日/月/年) 刚输入%02D / 02D%/%4D”, 对, 阶梯, 男);
的printf(“\Ñ n n n n n n n n n n”);
回报 0;
}
//———————————————————————
INT主要() {
一个INT, B;
的printf(“\ñ n tNhap 2 所以阮一, B: “); scanf函数(“%d%d”, &该, &B); fflush(标准输入);
系统(“CLS”);
的printf(“\ñ n Tvoi知道共同GIA三的%d, 比较b的%d考试的值:”, 该,B);
的printf(“\ñ n 取 + B =%d n n 将 – B =%d n n 将 * B =%d n n 将 / B =%d”, 该 + B, 该 – B, 该 * B, 该 / B);
如果 (该 % b == 0) {
的printf(“\Ñ n TSO一个整除用b”);
}
其他 {
的printf(“\Ñ n TSO比B不能整除, 与%d / %d%d Duoc, 您%d”, 该, B, 该 / B, 该 % B);
的printf(“\Ñ n n n n n n n n n n”);
}
回报 0;
}
//———————————————————————
INT主要() {
浮[R;
的printf(“\Ñ n tNhap半径r: “); scanf函数(“%˚F”, &ř); fflush(标准输入);
系统(“CLS”);
的printf(“\Ñ n tVoi半径r =%.2f, 在球面S LA的面积: %.2˚F”, ř, 4 * 3.14 * POW(ř, 2));
的printf(“, 球体Ia的体积V: %.2˚F”, 4 * 3.14 * POW(ř, 3) / 3);
的printf(“\Ñ n n n n n n n n n n”);
回报 0;
}
//———————————————————————
INT主要() {
INT服务;
的printf(“\Ñ n tNhap上的秒总数: “); scanf函数(“%ð”, &闪耀); fflush(标准输入);
系统(“CLS”);
的printf(“\Ñ n tVoi总计%d秒, 它是根据HH格式化:毫米:SS LA: %02ð:%02ð:%02ð”, 闪耀, 闪耀 / 3600, (闪耀 % 3600) / 60, 闪耀 % 60);
的printf(“\Ñ n n n n n n n n n n”);
回报 0;
}
注意:
– 奉命花屏幕擦除系统(“CLS”), 除了你需要添加#的#include .
– 同样, 花POW函数计算的部分权力, 你#包括到NHE. 首席执行官: 到幂 4 该表示的转弯的图, 那么我们敲POW(该, 4).
– 要了解更深入,你问泉先生NHE.
你去网上code.cachhoc.net点代码提交代码NHE. 会知道你做了正确的假两.
#包括
INT主要()
{
一个INT,HH,PP,SS;
A = 3666;
HH = A / 3600;
PP =(一个3600%)/60;
SS =(一个3600%)%60;
的printf(“0%ð:0%ð:0%ð”,HH, PP, SS);
回报 0;
}
有没有广告的视频教程?
我问你的例子 2 当长度在匹配输入宽度值的矩形的面积是数字,先生的区域长的字符串
可以导入或导出你的作品是假的,它打印出一个非常大的数字. 您可以访问 https://chamcode.net 测试和做轻微的锻炼。.
无法将char值 * 在VD 1 (2. 用printf导出数据).
在导出部分讨论%d%f%c,所以让我问自己如何找到其他数据类型的这些格式 (例如: : 双, 长整数, 无符号字符, …) 它在哪里 ?
你可以去谷歌找到更多. 或参考此链接: https://codeforwin.org/2015/05/list-of-all-format-specifiers-in-c-programming.html
输入宽度或年龄时,必须进行较大的测量 0 是的先生。.
是啊, 但是,我在这里没有太多关注.
我问你的例子 1 char vs char *不同的ntn?
char是字符类型, 坦克 * 是字符串或字符指针的类型.
=(( 对于尚不了解C的年轻人有什么办法吗?, 但是我可以编码吗?. 我做每件事 2, 我不知道怎么做那些歌, 看到有些人说您想计算一顶帽子 2,3,4 我必须使用战俘,但在本课中我看不到战俘. 如果只有几个了解它的人可以做到 , 而且你做不到=(( 很伤心
a ^ 2 = a * a, a ^ 3 = a * a * a. 为什么用战俘 ?
谢谢, 因为我刚上完课 9 应该…. =))
#包括
INT主要()
{
星期四, 砰, 闪耀;
的printf(“现在输入时间:\nhap现在好了:\nhap现在很健壮:\ñ “);
scanf函数(“%ð%D%D”, &GIO, &砰, &闪耀);
的printf(“KQ: %dgio%dphut%dgiay”, GIO, 砰, 闪耀);
回报 0;
}
您可以访问 https://chamcode.net 提交NHE.
请编码 5 看到
所以你自己做.
// 时间到家庭室:砰:闪耀
#包括
INT主要()
{
一个INT;
的printf(“输入规则数:\ñ”);
的printf(“比较鞋子: “);
scanf函数(“%ð”, &该);
整数b = a-(一个/ 3600)*3600;
整数c = b-(b / 60)*60;
的printf(“\r =========最终结果========= n”);
的printf(“决定时间: %02ð:%02ð:%02ð”, 一个/ 3600, b / 60, Ç);
回报 0;
}
你可以进来 https://chamcode.net 提交NHE, 有圆点系统.
老师,如何计算 1 所以老师
使用sqrt(X) 在math.h库中可以.
如果要从Labview获取有关微控制器的一系列实数,则应在CCS程序中使用它: scanf函数 , 与fgets , 得到 . 如果????/
我不知道这是因为我不做微控制器.
贵重的到E问, 我只有在上课时才学习c 3 和嘉 2 然后将整数分解为实型的新变量,我用cthuc Thuong = a / b; 可以吗? 如果这样做的话,如果我添加库函数,它会有所不同? 因为 2 结果我看到k不同? 希望你能帮上忙
分开时 2 彼此求整数以获得实数的结果需要按. 你看 帖子 4 关于数学, 算子 了解更多.
rất hay
Giờ học lại chịu
#包括
INT主要()
{
整数小时,米,s,该;
的printf(“匹配匹配n”);
scanf函数(“%ð”, &该);
h=a/3600;
米=(a-h*3600)/60;
s=a-(米*60+高*3600);
的printf(“%02ð:%02ð:%02ð”,ħ,米,s);
回报 0;
}