c - 如何打印用户输入的结果?

标签 c

;在编译器预期 void 之前。 我真正的问题是: 我可以输入 ID 和姓名,但在 printf 中看不到它。 难道是因为我的数据没有记录到指针中? 如何解决这个问题?

#include <stdio.h>
struct data 
{
 int* ID;
 char* Name;
};

int main(void)
{
    struct data data1;
    struct data *data1Ptr;
    data1Ptr = &data1;
    printf("New ID:\n");
    scanf("%d",data1.ID);
    printf("Name:\n");
    scanf("%s",data1.Name);
    printf("The new ID is \n",&data1.ID);
    printf("The name input is \n",&data1.Name);

    return 0;
}

最佳答案

您没有正确使用 printf()

它不会神奇地处理任何参数的格式化:您必须使用格式说明符(以 % 开头)告诉它您要发送什么参数,以及您希望它们的值去往何处)。

您需要:

printf("The new ID is %d\n", data1.ID);
printf("The name input is '%s'\n", data1.Name);

另请注意,ID 不应该是 int *,它需要存储一个实际的整数,因此只能是 int

关于c - 如何打印用户输入的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15815202/

相关文章:

c - 如何定义枚举增量步骤?

c - 理解 C 中的格式说明符

c++ - 通过传递引用或返回它来初始化结构是更好的风格吗?

c - 程序无法在eclipse上运行

c - 为什么我的 OpenMP 实现比单线程实现慢? (跟进)

c - 在 C 中遍历字符串的首选方法是什么?

c - 为什么 nanosleep() 和 usleep() 太慢了?

c - 如何在C中检查日期时间

c - 在 linux 中静态链接库

c++ - 在不使用静态成员的情况下跨对象树共享数据的策略