[英]Weirdest errors with simple C program. Linux Installation corrupted?
这就是我所有的程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
typedef struct {
unsigned char adr;
unsigned char type;
} stru;
int main (int argc, char *argv[]){
while(1){
stru data;
data.adr = 5;
data.type = 4;
printf("Address: %c, Type: %c \n", data.adr, data.type);
}
return 0;
}
我用“ gcc testprog.c -o testprog”编译了它。
输出如下:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
Address: , Type:
^CAddress: , Type:
PuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTYPuTTY^C
我在Virtual Box上运行Ubuntu 12.04,并通过PuTTY SSH客户端访问它。我最近安装了0MQ库,但是我不认为这是导致错误的原因。
如果有人对此有解决方案,请告诉我。 谢谢。
无限循环看起来毫无意义。
而且,如果要将unsigned char
视为一个小整数,则需要使用合适的格式代码(例如%u
进行打印。
当前,您正在使用%c
说明符将值4和5打印为字符。 由于4和5是不可打印的Ascii字符,因此终端不会显示任何内容。 如果要查看已打印的值“ 4”和“ 5”,请将代码修改为printf("Address: %u, Type: %u \\n", data.adr, data.type);
因为这些是无符号值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.