c - 为什么 konsole 不等待第二次“阅读”/scanf?
问题描述
我有一个问题,当我运行我的程序时,它只需要第一个输入而不是第二个输入上的所有内容,我就是不知道为什么。要指定我是否在控制台 1 中写信,它的第一部分没有问题,然后打印这个奇怪的 ╠╠╠╠╠╠╠╠╠ (很多)和第二个任务,然后就像输入一样。该任务应该采用字符串(即使有空格)并计算出价/小写字母、数字等。有人可以告诉我我做错了什么吗?感谢您的帮助并保持安全
#include<stdio.h>
#include <string.h>
int main()
{
char z;
int B = 0, s = 0, n = 0, else = 0;
printf("Enter character:");
scanf_s("%c", &z, 1);
if (z >= 'A' && z <= 'Z')
printf("Big letter\n");
else if (z >= 'a' && z <= 'z')
printf("small letter\n");
else if (z >= '0' && z <= '9')
printf("number\n");
else
{
printf("else\n");
}
char something[50];
printf("Enter string:");
scanf_s("%50[^\n]", str, 50);
printf("Your name is %s", something);
int space = 0;
int len = 0;
for (int i = 0; something[i] != '\0'; i++)
{
if (something[i] == ' ')
{
space++;
}
else
{
len++;
}
}
for (int i = 0; i <= len; i++)
{
if (something[i] >= 'A' && something[i] <= 'Z')
{
B++;
}
else if (something[i] >= 'a' && something[i] <= 'z')
{
s++;
}
else if (something[i] >= '0' && something[i] <= '9')
{
n++;
}
else
{
other++;
}
}
printf("Your input %s contains:\nB=%d s=%d n=%d else=%d\n", something, B, s, n, other);
return 0;
}
解决方案
推荐阅读
- javascript - 处理按钮在输入内的点击
- php - 在 PHP 中安全地上传视频
- c - 如何正确使用 nanosleep() 以特定频率运行代码?
- java - 如何以 byte[] 的形式将 Base64 解码图像发送到 Java 中的 HttpPost
- java - 猜测 Sting 单词 java 中的符号
- java - 有人可以告诉我为什么 ListView 没有显示吗?
- python - 带有进程池和自定义管理器的 Python 多处理事件
- groovy - 如何在 jmeter 发布请求中发送 id 数组(存储在 csv 中)
- python - 我可以在带有硒的a标签下用python获取b标签中的数据吗?
- python - Python计算文件中同一行上的多个匹配字符串