C++从键盘读入一个0-255范围的整数,存成unsigned char型,应该怎么实现?

作者&投稿:郜耿 (若有异议请与网页底部的电邮联系)
unsigned char i 的范围是0-255,为什么这个程序变量的取值大于范围了还能运行?~

2000在作为delay函数的入参时,会被强制转换成unsigned char,此时超出范围的部门会被忽略。具体来说,2000的二进制值是111 1101 0000,在强制转换后,实际delay函数内部使用的 i 的二进制值是1101 0000,也就是十进制的208。
因此不能达到正确的延时结果。

对于这种值域由大变小的数据类型转换,编译器一般都会有警告的。除非明确知道转换的结果对自己的代码无不良影响,应避免这种转换。

//#include "stdafx.h"//vc++6.0加上这一行.
#include "stdio.h"
void dispdtob(unsigned char n){
if(n) dispdtob(n/2);
if(n) printf("%d",n%2);
}
void main(void){
unsigned char a;
printf("Type an integer(0~255)...
n=");
scanf("%d",&a);
printf("%d is converted into a binary is ",a);
if(a)dispdtob(a);
else printf("0");
printf(".
");
}

先读入一个整数,判定是否在0~255内,在就存为unsigned char型,不在范围就忽略
int n;
unsigned char unch;
scanf("%d",n);
if(n>=0 && n<=255)
{
unch=n;
}

int value = -1;
unsigned char t;
if(scanf("%d",&value) != 1) {
printf("scanf fail\n");
} else {
printf("scanf value=%d\n",value);
t = (unsigned char)value;
printf("t=%c(%d)\n",t,t);
}


键盘输入一个字符,判断字符是否大小写字母,如果是大写屏幕上输出upper...
ASSUME CS:CODE,DS:DATA START:MOV AX,DATA ;装载数据段 MOV DS,AX MOV AH,09H ;显示提示信息PLEASE INPUT DATA:MOV DX,OFFSET MSR INT 21H MOV AH,01H ;从键盘输入一个数据,该数据保存在AL中 INT 21H MOV BL,AL ;将AL寄存器的数值存放到BL寄存器中 ...

读入一个正整数n(1≤n≤6),再读入n 阶矩阵a,计算该矩阵除副对角线...
一个正整数n(1≤n≤6),再读入n 阶矩阵a,计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和(副对角线为从矩阵的右上角至左下角的连线)。【输入形式】从键盘输入一个正整数n和n阶矩阵。【输入样例1】(下划线部分表示输... 展开 6463

用c语言编写程序,如何实现获取键盘按下的字符?
代码如下:include<stdio.h> include<ctype.h> int main(void){ char ch;int index;ch = getchar(); \/\/读入一个字符存入ch ch = tolower(ch); \/\/转换为小写字母 index = ch - 'a' + 1; \/\/计算序号 printf("%d\\n", index);return 0;} ...

编制程序实现从键盘读入一数字,求平方根。如果此数为负数,请提示负数没...
用<math.h>中的函数:double sqrt( double num );include "stdio.h"void main(){ int input;printf("请输bai入一个数:du");scanf("%d",&input);if(input>0) { printf("结果是:%d",input*input);} else if(input<0) { printf("结果是:%d",-input);} else if(input==0) ...

怎么实现从键盘输入一个整数然后输出??
以下是C语言代码实现从键盘输入一个整数,然后输出这个数字的平方和立方的结果:首先使用 printf 函数提示用户输入一个整数,并使用 scanf 函数从键盘读入该整数,存储在变量 num 中。然后分别计算这个整数的平方和立方,将结果存储在变量 square 和 cube 中。最后使用 printf 函数输出这个整数的平方和立方...

C语言的 scanf("%d",&x) 是什么意思?
就是程序运行时,从键盘读取一个整数,存放到变量x中。

一个简单的编写汇编语言程序的问题
键入字符就是DOS功能调用:MOV AH,0AH ;键盘输入字符串 (10号\/0A调用)INT 21H ;从键盘上往指定缓冲区中输入字符串并送显示器显示

Java中如何从键盘接收一个字符
虚拟机是否具有控制台取决于底层平台,还取决于调用虚拟机的方式。如果虚拟机从一个交互式命令行开始启动,且没有重定向标准输入和输出流,那么其控制台将存在,并且通常连接到键盘并从虚拟机启动的地方显示。如果虚拟机是自动启动的(例如,由后台作业调度程序启动),那么它通常没有控制台。通过上面的文档...

C语言+从键盘输入一个英文单词,实现在指定位置删除英文字母的编程...
for (i = n - 1; i < len - 1; i++) { str[i] = str[i + 1];} str[len - 1] = '\\0';printf("删除后的字符串为:%s\\n", str);return 0;} ```该程序使用了fgets函数从键盘读入一个英文字符串,使用scanf函数读入要删除的第几个I字符的位置n。然后使用一个...

要求编程实现从键盘任意输入一个整数(大于1),计算n内所有能被5整除的累...
以下是一个 C++ 代码示例,可以从键盘读取一个整数,然后计算该整数以内所有能被 5 整除的数的累加和:cppCopy code include <iostream>using namespace std;int main() { int n; int sum = 0;cout << "请输入一个整数n(n > 1): ";cin >> n;for (int i = 1; i <= n; ...

天长市14716876394: C++从键盘读入一个0 - 255范围的整数,存成unsigned char型,应该怎么实现? -
阴阎紫竹: 先读入一个整数,判定是否在0~255内,在就存为unsigned char型,不在范围就忽略 int n; unsigned char unch; scanf("%d",n); if(n>=0 && n{ unch=n; }

天长市14716876394: C++输入1个整数(0至255),转换为8位二进制数并输出. -
阴阎紫竹: int main() { int a,b,c; int max; coutcin>>a>>b>>c; max=a>b?a:b; max=max>c?max:c; coutcoutreturn 0; }

天长市14716876394: "由键盘输入一个小于256的十进制正整数,然后将该数转换成八位的二进制数形式输出."的c++程序 -
阴阎紫竹: #include "stdio.h" int main() { int i; int j = 128; scanf("%d", &i); while(j > 1) { if(i/j == 1) { printf("1"); } else printf("0"); i = i % j; j = j/2; } printf("%d", i); }

天长市14716876394: c++大神求助.编写一个程序,读入一个0 - 1000范围内的整数,将此整数中的所有数字相加. -
阴阎紫竹: 楼上的那个貌似没有调试过吧......稍稍改了一下 #include #include int main(){ int i; char s[100]; scanf("%s",s); if(s[0]=='-'){ printf("-"); for(i=strlen(s)-1;i>=1;i--) printf("%c",s[i]); } else { for(i=strlen(s)-1;i>=0;i--) printf("%c",s[i]); } printf("\n"); getchar(); return 0; }

天长市14716876394: 输入一个0 到255 之间的十进制整数,要求把此数转化为二进制形式 -
阴阎紫竹: //#include "stdafx.h"//vc++6.0加上这一行. #include "stdio.h" void dispdtob(unsigned char n){if(n) dispdtob(n/2);if(n) printf("%d",n%2); } void main(void){unsigned char a;printf("Type an integer(0~255)...\nn=");scanf("%d",&a);...

天长市14716876394: c++中,从键盘读入一行整数,回车停止, 再读一个数,,如何达到?? 麻烦各位ojer了. -
阴阎紫竹: int main(int argc, char** argv) { int x; int cc[100]; string mdata; if(getline(cin,mdata)) { process1(mdata);//现在mdata中包含了你输入的一行整数(以空格隔开).写你自己的处理方//法,将mdata中的数据解析出来存入cc. } cin>>x; process2(x);//写方法将x写入cc. return 0; }补充:process1 中大概用到的函数 find \ substr \ atoi \trim(清理空格,函数库里没有得自己写)...........

天长市14716876394: C语言,char字符型的取值范围是0 - 255,表示的是只有255字符(难道计算机只有255个字符吗) -
阴阎紫竹: 首先ASCII表设计的时候没有考虑到中文字符. 然后关于ASCII表中的字符个数可以网上查到是256个. 因为char类型占内存为1Byte == 8bit,每个bit位都有0/1两个可能,所以2的8次方为256. 其中前128个为常用的字符 如 运算符 字母 数字等 ...

天长市14716876394: C++从键盘读入一行字符(约定:字符数≤127字节),统计该行字符中出现的字母、数字和其它字符的数量 -
阴阎紫竹: 首先 你输入字符串 应该是%s 不是%c ;然后 因为其他字符你不知道是什么字符 ,不能简简单单的判断是不是 " "(空格), 而且,scanf读入字符串的时候 遇到空格会自动停止,如果你读入的字符串中有很多空格 ,得用gets函数 gets(str);这样 写, 你统计其他字符的时候,可以用一个 len = strlen(str) ; 求出原来字符串有多少个字符, 用len - j - k 就是其他字符的数量

天长市14716876394: 编写C++程序实现以下功能:从键盘读入3个数,输出其中的最大数和最小数. -
阴阎紫竹: #include<iostream>#include<conio.h> using namespace std; int max(int a,int b,int c); int min(int a,int b,int c); int main() { int a,b,c; cout<<"请输入三个整数a,b,b,它们之间以空格隔开:"<<endl; cin>>a>>b>>c; cout<<"三个整数中最大数为:"<...

天长市14716876394: C++中从键盘读取单个字符的函数及头文件 -
阴阎紫竹: cin.get() cin是istream类的对象,get(),是其成员函数. 头文件用iostream就可以了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网