scanf("%c",&c);
printf("%c",c+1);
如果输入“a”,它会按我的意愿打印“b”,但如果我尝试这样做,它会打印一个奇怪的问号。
char p[50];
char x = argv[1];
scanf(" %[^\n]s", p);
printf("%c\n", x+p[0]);
因为我想像 ./prog 1 一样运行程序,并且 1 将添加到字母的值中,因为 'a' 将变为 'b'。 但它打印出这个:....
最佳答案
我可以看到您添加的是字符而不是整数。你必须考虑的是,例如“1”的值(在 ASCII 49 中)与 1 不同。此外,argv[1]
主要是指向 char 的指针,因此这应该警告您正在从指针。因此,您必须先将 argv[1]
(在本例中为字符数组 - 字符串)转换为整数。如果有这样的说法,当然可以(访问前需要检查)。
关于c - 如何使用 argv 打印 ASCII?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772503/