编写一个简单的代码,该代码假定先扫描一个整数和一个字符,然后将其写出。 我的输入是1a,输出应该是1a,但是我在整数点上得到0。对c有一个非常基本的了解,因此可能已经错过了一些非常明显的东西,谢谢。
#include <stdio.h>
int main()
{
int a;
char b;
scanf("%d", &a);
scanf(" %s", &b);
printf("%d", a);
printf("%s", &b);
}
答案 0 :(得分:0)
b是一个字符,%s用于字符串输入,因此在b之后添加尾随0可能会导致崩溃。使用%c输入字符。
答案 1 :(得分:0)
您基本上想要这样:
#include <stdio.h>
int main()
{
int a;
char b[100]; // array of 100 chars
scanf("%d", &a);
scanf("%s", b);
printf("%d", a);
printf("%s", b);
}
要完全理解这一点,您需要阅读C课本中与scanf
有关的章节和与字符串有关的章节。
答案 2 :(得分:0)
b是一个字符,因此将%s替换为%c
2.printf()仅将值输出到该变量中存在的控制台。 从而无需在其中使用&
正确的代码:
#include <stdio.h>
int main()
{
int a;
char b;
scanf("%d", &a);
scanf(" %c", &b);
printf("%d", a);
printf("%c", b);
}
答案 3 :(得分:0)
您可以尝试:
#include <stdio.h>
int main()
{
int a;
char b;
scanf("%d", &a);
scanf(" %c", &b);
printf("%d", a);
printf("%c", b);
}