C语言用getchar函数录入字符串
发布网友
发布时间:2022-05-29 09:48
我来回答
共5个回答
热心网友
时间:2023-10-14 23:38
input_c=input_c-'0'; //这一句是什么意思,你把input_c-'0'就得到一个整数,而你的input_c又是char型的,怎么赋值,多声请一个中间变量来保存intput_c-'0'就行了,为什么非要把它赋给input_c呢?
所以改一下就行了
int temp[]; //把temp声请为int型。
if(input_c>='0'&&input_c<='9'
{
int c=input_c-'0';
temp[i++]=c;
}
else ....
这样就不会有类型转换的问题出现了。
热心网友
时间:2023-10-14 23:38
真运行不出什么错误,也没a[i]=getchar()的语句啊,你试下我这段代码
#include<stdio.h>
#define N 4
void main()
{
char temp,ch[N],j=0;
for(int i=0;i<3;i++)
{
fflush(stdin);
temp=getchar();
if(temp<='9'&&temp>='0')
{
ch[j++]=temp-'0';
}
}
for(i=0;i<3;i++)putchar(ch[i]);
}
热心网友
时间:2023-10-14 23:39
=是赋值
==才是判断是否等于
还有,char 的1 ==int 的49
而且你的char没有转换成int就开始比较了。
热心网友
时间:2023-10-14 23:39
你的数组的类型是int ,和getchar()的返回类型不匹配.
你这样定义应该就没问题了.如 char a[10];
热心网友
时间:2023-10-14 23:40
定义一个中间变量:char c;
c=getchar();
a[i]=c,试试看~~~