询问用户他们的姓氏和名字,并将电子邮件帐户作为输出

时间:2014-01-20 09:49:28

标签: c printf

#include <stdio.h>

int main(){

    char last[20];
    char first[20];

    printf("Please enter your last name:");
    scanf("%s",last);
    printf("\nPlease enter your first name:");
    scanf("%s",first);
    printf("Here your email address\n",last,first,@student.com); //last first@student.com

}

我希望用户写下他们的名字,我会自动输出他们的电子邮件。

2 个答案:

答案 0 :(得分:7)

变化:

printf("Here your email address\n",last,first,@student.com);

要:

printf("Here your email address: %s%s@student.com\n",last,first);

答案 1 :(得分:0)

问题出在程序结束前的最后一行代码中:

printf("Here your email address\n",last,first,@student.com); //last first@student.com

您似乎正在尝试使用printf,就像使用Python或其他语言一样,您可以将字符串添加到一起然后显示它们。这不是printf的工作方式。如果查看documentation for printf,在第一个参数中,您实际上是为结果字符串定义模板。 “嘿,我想要打印一些文本,然后在这里我要显示一个字符串变量的结果,这里我想显示一个整数,”等等。然后,其余的参数是你想要显示的变量字符串,按照您在第一个参数中列出的顺序:

// NOT WORKING CODE!
printf(template string, var1, var2, ..., varX); 

当您创建模板字符串时,您告诉C您希望某个地方的变量带有一个称为格式说明符的变量。它们中有很多,它们告诉C你将拥有什么样的变量。请参阅上面的链接以获取显示可用格式说明符的表。在您的情况下,因为您想要显示字符串,格式说明符为%s。 (请注意,格式说明符与scanf的格式说明符相同)最后一行将是以下内容,假设您希望在电子邮件地址后面添加换行符:

printf("Here your email address %s%s@student.com\n",last,first); //last first@student.co