当前位置:首页 » 编程语言 » c语言未输入字符
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言未输入字符

发布时间: 2022-07-11 05:11:47

c语言:为什么会没有字符的输入,请指出哪里错了,应该怎么改。

# include<stdio.h>
void main()
{
float a,b,sum;
char d;
printf("请输入两个数字\n");
scanf("%f",&a);
scanf("%f",&b);
while(getchar()!='\n')continue;//加上这句就可以了
printf("选择算法 '+','-','*','/'\n");
scanf("%c",&d);//这里,上面scanf输入接收后的回车符被这个scanf接收了,把上面输入后的回车符去掉就可以了
switch(d)
{
case '+':sum=a+b;break;
case '-':sum=a-b;break;
case '*':sum=a*b;break;
case '/':sum=a/b;break;
}
printf("%.0f%c%.0f=%.0f\n",a,d,b,sum);
}

❷ c语言问题 为什么没有提示输入字符 改成 choice=getchar()也不行,改成choice=getch()才可以 详细一下

这是由于输入流的问题,缓冲区内还存在数据,读写的时候直接就赋给了 变量choice。
你要注意,在处理字符类型的输入时地注意缓冲区是否还留有数据,有可能是个回车(一般情况下)。所以在读入字符型语句前,比如 scanf("%c",&choice); 前加 getchar(); 语句,这样就不会有问题了,或者也可以使用 fflush(stdin); 直接清空输入流。那位说用 scanf("%s",&choice); 这种字符串处理代替字符,其实这种方法在所有数据都是字符时使用倒是挺好,这样就不用管输入流了,因为 %s 是输入到回车结束的,也不会产生类似问题!

❸ c语言字符串可以输入,但是字符无法输入

#include"stdafx.h"
intmain()
{charstr[30];
charm;
inti,j=0;
printf("inputastring: ");
scanf("%s",str);
printf("inputachar: ");
//m=getchar();(这里出问题,换成scanf("%c",&m)也是一样问题,问题见下面图片)
fflush(stdin);
scanf("%c",&m);
for(i=0;str[i]!='';i++)
{if(str[i]==m)
j=j+1;}
printf("=%d ",j);
}

修改后程序如上所示,因为你没清空scanf

❹ 求解:为什么下列c语言程序中,后面单个字符还没有输入程序就结束了

第一个scanf,你输入了一个字符串和一个回车符,scanf不会处理掉回车符。所以下一个scanf读取了遗留下来的那个回车符。要想解决这个问题,第一个scanf结束后加getchar();

❺ 这个C语言程序运行时,我输入一个数字,按回车,没输入字符串,就直接显示了,为什么呢

贴上你的代码。。调用输入函数错了吧。

❻ C语言字符串无法输入

把scanf一行改为:
scanf("%d%*c",&c[0].a);
作用是把输入数字后面的一个回车符丢弃,防止下一行读到一个“空字符串”。

❼ c语言的字符输入问题

你应该是认为你只输入了abc3个字符,应该就只会出现3次agin,但是当这3次完了之后你是按的“回车”键结束,所以enter被存入缓冲区,程序会将"回车"键也就是'\n'给c,所以会有4次agin输出。

❽ 遇到了一个C语言结构体数组下标在未输入字符串时会从[0]变成[1]

理解错误,i值并没有啥变化,输出0后接着马上就输出了1,是因为最开始时,gets把你的输入缓冲里的换行符读取了,你可以试试在gets那句前面加一句fflush(stdin);来刷新缓冲再看结果

注:fflush(stdin)并不是个符合标准的做法,但在VC++或Mingw上基本能符合你的预期

❾ C语言如何判断是否有字符输入

使用ctype.h里面isdigit()和isalpha函数就可以判断了

#include <ctype.h>
#include <stdio.h>
int main()
{

printf("1 是数字吗? %s\n",isdigit('1')?"是":"不是");
printf("a 是字母吗?%s",isalpha('a')?"是":"不是");

return 0;

}

❿ 如果一个C语言程序用字符型数组储存数据,你输入数据时没输入字符而是直接回车跳过了,这个数组里会储存

有点看不懂你的意思....

如果你是说对字符型数组的某一个数组元素进行输入赋值的话


那么肯定不会有,因为只在字符串中有系统自动添加

所以编译器会读取一个 回车符' ',到printf输出时会自动换行

如图 注意 第二行是printf输出 后出现的换行