警告:建议用作真值的赋值括号

程序片段是为素数提取而编写的。 编译器抛出了警告,就像标题一样。 while(count<=n) { for(c=2;c=(i-1);c++) //the warning is shown here { if(i%c==0) break; } if(c==i) { printf("%d ",i); count++; } i++; } 提前谢谢你!

fgets如何读取int

请fgets函数如何读取int? 还有一个问题scanf如何喜欢fgets按Enter然后继续下一步? 谢谢!

连接由V-USB库驱动的libUSB设备用于AVR

我写了一个简单的程序(基于以下教程),通过USB端口将数据从AVR芯片(Attiny 2313)发送到计算机,因为这个设备没有内置USB端口,我已经使用V-USB库通过软件模拟这样的端口。 设备按预期工作,我使用libusb库将它与C接口没有问题,但是我想用Java访问它,所以我查找了libusb的java实现。我管理的唯一库设置,它已成功找到总线上的USB是“libusb-win32包装” 。 唯一的问题是当我尝试打开它时设备会抛出exception ch.ntb.usb.USBException: No USB endpoints found. Check the device configuration at ch.ntb.usb.Device.updateMaxPacketSize(Device.java:82) at ch.ntb.usb.Device.initDevice(Device.java:114) 怎么修好? 还有另外一种方法吗? 任何建议? 这是抛出exception的代码 Device dev = USB.getDevice((short) 0x16c0, (short) 0x05dc); dev.open(1, 0, -1); 这里是关于设备viw USBview的数据 Device Descriptor: bcdUSB: 0x0110 bDeviceClass: 0xFF bDeviceSubClass: 0x00 bDeviceProtocol: 0x00 bMaxPacketSize0: 0x08 (8) idVendor: 0x16C0 idProduct: 0x05DC bcdDevice: 0x0100 iManufacturer: 0x01 […]

std :: vector 到char *数组

我有一个std::vector ,我需要将它用于读取char* foo的C函数的参数。 我已经看到 如何将std::string转换为char* 。 作为C++的新手,我正在尝试拼凑如何在向量的每个元素上执行此转换并生成char*数组。 我已经看到了几个密切相关的SO问题,但大多数似乎都说明了转向另一个方向并创建std::vector 。

字符串不是从C函数中的返回值捕获的

我有一个函数,它应该合并2个字符串并返回结果更长的字符串。 该字符串似乎已成功合并到函数中,但返回时信息将丢失。 函数中的’output’包含合并的字符串,应返回此值。 mergedString不在main中打印,而是在函数中打印。 为什么? 如何使其工作? main () { char *mergedString = mergeStrings( frags[maxOverlapArrPos1], frags[maxOverlapArrPos2], maxCharOverlap); printf (“mergedStringInMain is %s\n”, mergedString); } char * mergeStrings(char * string1, char * string2, int overlapCharSize){ int overlapStartPosition = strlen(string1) – overlapCharSize; char output[] = “”; if (strlen(string2)>overlapCharSize){ strncat(output, string1, overlapStartPosition); strncat(output , string2, strlen(string2)); } printf (“mergedStringInFunction is […]

大多数嵌入式C编译器如何定义内存映射I / O的符号?

我经常写这样的内存映射I / O引脚 P3OUT |= BIT1; 我以为我的预处理器正在用这样的东西替换P3OUT: *((unsigned short *) 0x0222u) 但我今天挖了一个H文件,看到了这些内容: volatile unsigned short P3OUT @ 0x0222u; 在此之前还有一些扩展,但通常是这样。 正在使用符号’@’。 除此之外,还有一些关于使用扩展的C语言集的#pragma。 我假设这是链接器的某种指令,并且有效地将符号定义为存储器映射中的该位置。 我的假设是否适合大多数编译器的大部分时间? 这种方式或其他方面有关系吗? 那个@符号来自哪里,它是某种标准吗? 我正在使用IAR Embedded工作台。 这个问题类似于这个问题: 如何将变量放在内存中的给定绝对地址(使用GCC) 。 它符合我认为编译器正在做的事情。

sprintf%g说明符在点之后给出的位数太少

我正在尝试将浮点变量写入我的ini文件中,我遇到了格式说明符的问题。 我有一个浮动值,让它为101.9716。 现在我想将它写入我的ini文件,但问题是我有另一个浮点值,它具有较少的先决条件(例如15.85),并且该值正在同一循环中写入ini文件。 所以我这样做: sprintf(valLineY, “%g”, grade[i].yArr[j]); 我所有的其他变量都变成了很好的字符,如“20”(如果它是20.00000),“13.85”(如果它是13.850000),依此类推。 但由于某种原因,101.9716变为“101.972”。 你能否告诉我为什么会发生这种情况以及如何在不破坏我的意识形态的情况下使其成为“101.9716”(这是关于删除尾随的零和不必要的感知)。 谢谢你的帮助。

如何在openGL cubestack中的对象顶部打个洞?

我想在openGL cube.i尝试某些方法,如使用模板和alpha混合。但模板的问题是它是划分和显示只有一半的部分。我的要求是我必须堆叠立方体,应该让用户指定的孔数(矩形/椭圆形)仅限于顶部对象。我能够堆叠对象,但如果需要则无法创建孔。 我是openGL的新手,我找不到任何直接的解决方案。有人给出了这个要求的示例程序吗? 模具代码: glClear(GL_STENCIL_BUFFER_BIT); glColorMask(false, false, false, false); glEnable(GL_STENCIL_TEST); glStencilFunc(GL_EQUAL, 0, 1); glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP); glDisable(GL_DEPTH_TEST); glColor4f(0,0,1,1.0f); //code for cube glEnable(GL_DEPTH_TEST); glColorMask(true, true, true, true); glStencilFunc(GL_ALWAYS,0, 1); glStencilOp(GL_REPLACE,GL_KEEP, GL_ZERO); //code for cylinder glDisable(GL_STENCIL_TEST);

用随机数填充数组并打印到屏幕

我是初学者,尝试用随机数填充3×5二维数组,然后在屏幕上显示高,低和平均值。 我无法让我的arrays打印到屏幕上。 有人可以帮忙吗? #include #include #include int main (void){ int array [3][5]; int practice_array; int i, row, col; srand(time(NULL)); for ( row = 0; row < 3; row +1){ for ( col = 0; col < 5; col +1){ array[row][col] = (rand()%10000) + 1; } } practice_array = array[row][col]; printf("%d", array[row][col]); return (0); }

procs,fork()和mutexes

我想创建并行运行的n个进程,让它们锁定互斥锁,递增计数器,然后解锁并退出。 这是我的代码: #include #include #include #include #include #include #include pthread_mutex_t mutex; int main(int argc, char **argv) { if (argc != 2) return 0; int n = atoi(argv[1]); int i = 0; int status = 0; pthread_mutex_init(&mutex, NULL); pid_t pid = 1; static int *x; x = mmap(NULL, sizeof *x, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, […]