所以这是我所有的程序代码:
#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 库,但我认为这不是导致错误的原因。
如果有人对此有解决方案,请告诉我。 谢谢。
最佳答案
我认为您想在格式字符串中使用 %u
而不是 %c
。
%c
将输入解释为 ASCII character值,因此使用 %c
打印 4 或 5 将打印出控制字符范围内的内容。输出控制字符可能是导致输出底部出现所有奇怪内容的原因。
%u
需要一个无符号整数作为输入,它会在打印前将整数转换为字符串。
关于c - 简单 C 程序中最奇怪的错误。 Linux 安装损坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12606528/