打印二进制数给出奇怪的结果

我正在审查按位运算符,并编写了一个简单的代码来打印数字的二进制表示,但我有疯狂的输出,我没有解释它。 为什么程序没有给我正确的二进制数? 以下是示例输出: 和我的代码: #include #include void pBinary(int x); int main(void) { for (int n = 0; n < 20; n++) { pBinary(n); } return 0; } void pBinary(int x) { int y = 1 << 31; for (int n = 0; n >= 1; } putchar(‘\n’); }

将文本文件中的int读入C中的数组

我有一个格式如下的文本文件: 100 0 10 1 101 6 10 1 102 8 4 1 103 12 20 1 104 19 15 1 105 30 5 1 106 35 10 1 我需要将这些数字分别放入数组pID [],arrival [],bursts []和priority []中。 C不是我最强的语言,所以我在这方面遇到了一些麻烦。 这是我目前的代码: void readFile(int n, int pID[], int arrival[], int bursts[], int priority[]){ FILE *file; int i = 0; file = […]

如何在Linux中使用c的`getch`function?

我在Linux mint中安装了ncurses库,但我仍然不能在c中使用getch函数。 我正在使用Linux mint 18.2。 这是我的计划: #include #include int main() { char k; printf(“how are you”); k = getch(); printf(“%c”,k); } 这是输出: ram@ram$ gcc-7 test.c -lcurses ram@ram$ ./a.out how are you ram@ram$ 它不会等我按任何键并快速终止。 我不想为Linux安装conio.h 。 如何在Linux中使用getch和getche函数? 请不要告诉我自己的function。 我还是个菜鸟。 或者必须有替代品。

用fork()的子和父pid;

我正在尝试制作一个程序,使9个子进程,所以我只使用fork 9次,如果我们是父亲,像这样: for (int i = 0; i 0) { child_pid = fork(); childs[i] = child_pid; } if (child_pid < 0) printf("Error…\n"); } 现在,我必须在每个孩子身上打印出他是什么孩子,从0开始,所以我在想这个: printf(“This is child #%d\n”, getpid() – getppid()); 但我不确定,这总是有效吗?如果父母创建子系统时操作系统会创建另一个进程,那么孩子的数量将会停止? 最后,如果答案是肯定的,我怎样才能让#n孩子知道他是儿童编号n?

将char *前缀添加到C中的现有char *的最佳方法

是)我有的: char * a = “world”; char * b = “Hello”; 我需要的是: char * a = “Hello World”; 我需要先添加b。 这样做有什么function吗?

GetThreadTimes如何报告hibernate时间?

我目前正在使用GetThreadTimes告诉我在应用程序的事件循环中花了多少时间。 我想知道这会如何受到冬眠的影响。 是否报告了hibernate时间? 或者也许是系统时间? 所有版本的Windows上的行为是否相同? 注意我在这里问了Posix的相同问题。

是否有在数字屏幕上绘制2d对象的一般方法

在某些情况下,我想通过定义一组像素来绘制2D对象,以更改为表示形状的颜色。 例如,如果我想绘制一个正方形,我会定义左上角说(0,0),右下角说(10,10)。 然后我用y值0-10改变所有像素x值0-10的颜色。 不幸的是,我没有一个坚固的分步方法来完成这个,并且由于它们有多简单,我只能绘制正方形/矩形。 有没有可以描述的方法,或者描述如何执行此操作的资源,您可以指向我,这将帮助我绘制除了正方形和矩形之外的形状? 伪代码,或者在C或java中的这个基本实现会非常有帮助。 此外,只是详细说明如何实现这一点也会有所帮助。

返回给定IP地址和子网掩码的IP地址列表的函数

我需要帮助在C / C ++中编写一个函数,它接收两个参数: IP地址和子网掩码 。 该function需要重新计算关联网络中所有IP地址的列表。 例如:给定两个参数: IP地址 = 192.168.33.72和掩码 = 255.255.255.192,该函数将返回包含IP的192.168.33.65到192.168.33.126的列表。

如何使用它来杀死线程数组?

这段代码工作正常,但如何使用它来杀死剩余线程数组? #include #include #include void *print1(void *tid) { pthread_t *td= tid; pthread_mutex_t lock1=PTHREAD_MUTEX_INITIALIZER; pthread_mutex_lock(&lock1); printf(“1”); printf(“2”); printf(“3”); printf(“4\n”); printf(“Coming out of thread1 \n”); sleep(2); pthread_mutex_unlock(&lock1); pthread_kill(*td,SIGKILL);//killing remaining all threads return NULL; } void *print2(void *arg) { pthread_mutex_t *lock = arg; pthread_mutex_lock(lock); sleep(5); printf(“5”); sleep(5); printf(“6”); sleep(5); printf(“7”); sleep(5); printf(“8\n”); fflush(stdout); pthread_mutex_unlock(lock); return NULL; } int […]

C中的多重引用和解引用

有人可以解释我多重参考和解除引用背后的概念吗? 为什么以下程序将输出设为’h’? int main() { char *ptr = “hello”; printf(“%c\n”, *&*&*ptr); getchar(); return 0; } 而不是这个,而是产生’d’? int main() { char *ptr = “hello”; printf(“%c\n”, *&*&ptr); getchar(); return 0; } 我读到连续使用’*’和’&’相互抵消,但这个解释没有提供上述代码中产生的两个不同输出背后的原因?