C - scanf,printf名称和年龄计划

时间:2014-11-06 21:52:25

标签: c printf scanf

#include <stdio.h>

int main ()
{
   char yourname;
   int yourage;

    printf("Whats your name?\t");
    scanf("%c",&yourname); 
    printf("How old are you?\t");
    scanf("%d",&yourage);
    printf("You are %d years old and your name is %c\n\n\n",yourage,yourname);
    system("pause");
    return(0);
}

我希望此程序询问用户名和年龄,然后打印它们。

3 个答案:

答案 0 :(得分:2)

当您使用scanf时,%c旨在获取单个字符。如果您想获得字符串,则需要使用%s

另外,在C语言中,string只是char数组。所以你需要声明一个char数组。

#include <stdio.h>

int main ()
{
   char yourname[100];
   int yourage;

   printf("Whats your name?\t");
   scanf("%s",yourname); //i let you read the doc to avoid overflow :)
   printf("How old are you?\t");
   scanf("%d",&yourage);
   printf("You are %d years old and your name is %s \n\n\n",yourage,yourname);
   system("pause");
   return(0);
}

答案 1 :(得分:0)

名称应该是一个字符数组,我的意思是字符串。所以你可以创建一个字符串:

char yourname[30];
.
.
scanf("%s", &yourname);
.
.
printf("your name is %s\n",yourname);

答案 2 :(得分:0)

这应该适合你:

#include <stdio.h>

int main () {
   char yourname[20];
   int yourage;

    printf("Whats your name?\t");
    scanf("%18[^\n]s", yourname);

    yourname[19] = '\0';
    fflush(stdin);

    printf("How old are you?\t");
    scanf(" %d",&yourage);

    printf("You are %d years old and your name is %s\n\n\n", yourage, yourname);

    system("pause");
    return(0);
}