#include<stdio.h>
#include<string.h>
#include<conio.h>
struct candidate{
char name[20];
int count;
}person[3]={"a",0,"b",0,"c",0};
int main(void)
{
/*********Begin*********/
int all;int i = 0;
char temp[20];
scanf("%d",&all);//就是这里,如果换gets()就只能读取9次,假设all=10
for (i; i < all; i++)
{
scanf("%s",temp);
if (strcmp(temp,"a")==0)
{
person[0].count++;printf("A");
}
if (strcmp(temp,"b")==0)
{
person[1].count++;
}
if (strcmp(temp,"c")==0)
{
person[2].count++;
}
}
for (int j=0;j<3;j++)
printf("%s:%d\n",person[j].name,person[j].count);
getch();
/*********End**********/
return 0;
}
在一个10次的循环中,gets读取9次,换scanf却读取了十次,这是为什么?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- _WindChimes 2021-03-05 09:35关注
#include <stdio.h> #include <string.h> #include <conio.h> //这是测试代码:2021-03-05-LeeHJ int main(void) { int scanfTemp = 0; char getsTemp[20]; char *pGets = NULL; pGets = gets(getsTemp); //入参是char型指针,这个gets函数不能指定入参 printf("gets S is %s\r\n", pGets); //gets 入参是字符串的形式,加入输入10 字符串打印是10 但是打印整型 就不是10了 printf("gets D is %d\r\n", (int)pGets); scanf("%d", &scanfTemp); //这里指定了 键盘输入的字符转化为整型,这个函数可以指定入参,因此会根据设置转化 printf("scanfTemp D is %d\r\n", scanfTemp); } //运行结果: //10 //键盘输入 //gets S is 10 //gets D is 2686756 //10 //键盘输入 //scanfTemp D is 10
解决 无用评论 打赏 举报
悬赏问题
- ¥15 基于卷积神经网络的声纹识别
- ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
- ¥100 为什么这个恒流源电路不能恒流?
- ¥15 有偿求跨组件数据流路径图
- ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
- ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
- ¥15 CSAPPattacklab
- ¥15 一直显示正在等待HID—ISP
- ¥15 Python turtle 画图
- ¥15 stm32开发clion时遇到的编译问题