Tag: 整数

使用scanf进行validation检查在循环内不起作用

我正在尝试创建一个函数来检查用户的输入,并让他们再次尝试,以防他们输入错误的输入。 因此,当我在函数中输入错误的输入时,它会将我抛入无限循环。 我该怎么做才能解决它? 我被允许只使用getchar和scanf进行用户输入。 int sizeOfField() { int size,inputCheck,flag=0; while (!flag) { inputCheck= scanf(” %d “, &size ); if ( inputCheck < 1 ) { printf( "Invalid Input!\n" ); printf( "Try agian"); } else if (inputCheck == 1) flag=1; } return size; }

如何在objective-c中将字节值转换为int

请告诉我如何在iPhone编程中将字节转换为Objective-c中的NSInteger / int?

使用fputs()将整数写入文件

不可能像fputs(4, fptOut);那样做fputs(4, fptOut); 因为fputs不喜欢整数。 我该如何解决这个问题? 做fputs(“4”, fptOut); 不是一个选项,因为我正在使用计数器值。

uint128_t没有命名类型

我正在将一些代码从C转移到C ++。 在转换期间我遇到了: uint128_t没有命名类型 我的编译器:gcc版本5.2.1 我的操作系统:Ubuntu 15.1 这个编译好的C和我认为它将通过包括stdint.h解决,但它没有。 到目前为止,我还没有尝试过其他任何事情,因为似乎没有关于此错误的大量信息( 示例 )。 uint128_t在整个程序中使用并且对于构建是必不可少的,因此我无法删除它,并且我不确定使用不同的整数类型。 以下是使用位置和方式的示例。 union { uint16_t u16; uint32_t u32; uint128_t u128; } value; 是否可以定义uint128_t或者我应该查看我的编译器?

常见体系结构的最快整数类型

stdint.h头文件缺少int_fastest_t和uint_fastest_t以与{,u}int_fastX_t类型对应。 对于整数类型的宽度无关紧要的情况,如何选择允许处理最大位数且性能损失最小的整数类型? 例如,如果使用朴素方法在缓冲区中搜索第一个设置位,则可以考虑这样的循环: // return the bit offset of the first 1 bit size_t find_first_bit_set(void const *const buf) { uint_fastest_t const *p = buf; // use the fastest type for comparison to zero for (; *p == 0; ++p); // inc p while no bits are set // return offset of first bit set return […]

在C中定义16位整数

我需要在C中声明一个大小为16位的整数。 我知道short和int size是依赖于机器的。 我试图使用”stdint.h”,但似乎他们只是这样做 typedef short int16_t 所以我的问题是: 我错过了什么,短型保证16位长度? 如果不是,是否有替代方案可以保证呢?

如何将字符串可移植转换为不常见的整数类型?

一些背景:如果我想用,例如, scanf()将字符串转换为标准整数类型,如uint16_t ,我将使用 SCNu16 ,如下所示: #include #include uint16_t x; char *xs = “17”; sscanf(xs, “%” SCNu16, &x); 但是像pid_t这样的更不常见的整数类型没有任何这样的东西; 仅支持普通的整数类型。 要转换为另一种方式,可移植printf()一个pid_t ,我可以将它转换为intmax_t并使用PRIdMAX ,如下所示: #include #include #include pid_t x = 17; printf(“%” PRIdMAX, (intmax_t)x); 但是,似乎没有办法将scan scanf()移植到pid_t 。 所以这是我的问题:如何便携? #include #include pid_t x; char *xs = 17; sscanf(xs, “%u”, &x); /* Not portable! pid_t might not be int! […]

C中的整数或任何其他数据类型的大小是否依赖于底层架构?

#include int main() { int c; return 0; } // on Intel architecture #include int main() { int c; return 0; }// on AMD architecture / *这里我在两台不同的机器上有一个代码,我想知道’是否依赖于机器的数据类型的大小’* /

使用浮点数和整数

我已经创建了一个ATM程序,它将钱存入一个人的账户。 当该人取出提款时,它会从账户中扣除50%的附加费。 我遇到的问题是在这个程序中使用整数和浮点数。 我将整数帐户转换为浮点数,但是当我尝试打印语句时收到错误消息。 有人能告诉我我做错了什么吗? #include int main (void) { int account = 2000; int withdrawal; float charge = 0.50; printf (“How much money would you like to take out? “); scanf (“%i”, &withdrawal); while (withdrawal % 5 != 0) { printf (“Withdrawal must be divisible by 5. “); scanf(“%i”, &withdrawal); } account = ((float) […]

C:如何防止使用scanf溢出输入?

我对C比较陌生,想知道如何防止输入溢出…… 例如,我有: scanf(“%d”, &a); 其中a是整数。 那么我能做些什么来阻止某人输入一个大于最大整数的数字呢? 由于我正在处理的问题的限制,你必须使用scanf 。 我如何限制输入? 提前致谢。