2014-01-20 30 views
-2
#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 [email protected] 

} 

我希望用户写出他们的姓名,我会自动输出他们的电子邮件。询问用户的姓名和电子邮件地址作为输出

+1

的printf不起作用这种方式。 –

+0

http://www.cprogramming.com/tutorial/printf-format-strings.html – phimuemue

回答

7

变化:

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

要:

printf("Here your email address: %s%[email protected]\n",last,first); 
0

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

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

它看起来像你”重新尝试使用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%[email protected]\n",last,first); //last [email protected] 
相关问题