当我在运行时设置两个输入时,Scanf()要求三个输入。 [英] Scanf() is asking for three inputs when I set two when run.

查看:175
本文介绍了当我在运行时设置两个输入时,Scanf()要求三个输入。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include< stdio.h>

#include< stdlib.h>



int main()

{

printf(Hello world!\ n);

printf(Tenno heika banzai !! \ n);

printf(%d \ n,69);

printf(输入你的名字\ n);

char name [ 30];

scanf(%s,& name);

printf(你的名字是:);

printf (%s \ n,姓名);

printf(输入你的年龄\ n);

int age;

scanf(%d,& age);

printf(你的年龄是:);

printf(%d \ n,年龄);

if(age> = 18){printf(Grown Frau / Mann \ n);}

if(age< 18){printf(年轻的boi \ n);}

printf(输入一个大号。\ n);

int nummer;

scanf(%ld,& nummer);

printf( %ld \ n,nummer);

int a;

int b;

printf(插入第一个和第二个数字: \ n);

scanf(%d \ n,& a); ///应该只是两个输入//

scanf( %d \ n,& b); ///还有另一个鬼输入///

printf(你选择%d和%d,a,b);

返回0;

}



我尝试过:



#include< stdio.h>

#include< stdlib.h>



int main()

{

printf(Hello world!\ n);

printf(Tenno heika banzai !! \ n);

printf(%d \ n,69);

printf(输入你的名字\ n);

char name [30];

scanf(%s,& name);

printf(你的名字是: );

printf(%s \ n,姓名);

printf(输入你的年龄\ n);

int age;

scanf(%d,& age);

printf(你的年龄是:);

printf(%d \ n,年龄);

if(age> = 18){printf(Grown Frau / Mann \ n);}

if(age< 18){printf(Young boi \ n);}

printf(输入一个大数字r.\\\
);

int nummer;

scanf(%ld,& nummer);

printf( %ld \ n,nummer);

int a;

int b;

printf(插入第一个和第二个数字: \ n);

scanf(%d%d \ n,& a& b);

printf(你选择%d和%轻拍);

返回0;

}

#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Hello world!\n");
printf("Tenno heika banzai!!\n");
printf("%d\n",69);
printf("Enter your name\n");
char name[30];
scanf("%s",&name);
printf("Your name is:");
printf("%s\n",name);
printf("Enter your age\n");
int age;
scanf("%d",&age);
printf("Your age is: ");
printf("%d\n",age);
if(age>=18){printf("Grown Frau/Mann\n ");}
if(age<18){printf("Young boi\n");}
printf("Enter a big number.\n");
int nummer;
scanf("%ld",&nummer);
printf("%ld\n",nummer);
int a;
int b;
printf("Insert first and second number pls:\n");
scanf("%d\n",&a);///should be just two inputs//
scanf("%d\n",&b);///There was a another ghost input///
printf("You have chosen %d and %d",a,b);
return 0;
}

What I have tried:

#include <stdio.h>
#include <stdlib.h>

int main()
{
printf("Hello world!\n");
printf("Tenno heika banzai!!\n");
printf("%d\n",69);
printf("Enter your name\n");
char name[30];
scanf("%s",&name);
printf("Your name is:");
printf("%s\n",name);
printf("Enter your age\n");
int age;
scanf("%d",&age);
printf("Your age is: ");
printf("%d\n",age);
if(age>=18){printf("Grown Frau/Mann\n ");}
if(age<18){printf("Young boi\n");}
printf("Enter a big number.\n");
int nummer;
scanf("%ld",&nummer);
printf("%ld\n",nummer);
int a;
int b;
printf("Insert first and second number pls:\n");
scanf("%d%d\n",&a&b);
printf("You have chosen %d and %d",a,b);
return 0;
}

推荐答案

简单:你告诉它了!

scanf 调用中的\ n告诉scanf忽略换行符之前的所有内容 - 但您已经使用了用户输入的换行符来终止第一行整数,所以它有点混乱。

你也不应该使用%ld来读取一个整数 - 没有空间来容纳一个长整数,并且在某些系统可能会给你带来不可预测的结果。



另外,作为一个初学者,不要试图将它们拼凑在一条线上:

Simple: you told it to!
The "\n" in your scanf call tells scanf to ignore everything up to a newline - but you've already used the newline the user entered to terminate the first integer, so it gets a little confused.
You also shouldn't use "%ld" to read into an integer - there isn't th space to fit a long integer in there, and on some systems that may give you unpredictable results.

Plus, as a beginner, don;t try to cram it all together on one line:
if(age>=18){printf("Grown Frau/Mann\n ");}

正确缩进:

Indent it properly:

#include <stdio.h>
#include <stdlib.h>

int main()
    {
    printf("Hello world!\n");
    printf("Tenno heika banzai!!\n");
    printf("%d\n",69);
    printf("Enter your name\n");
    char name[30];
    scanf("%s",&name);
    printf("Your name is:");
    printf("%s\n",name);
    printf("Enter your age\n");
    int age;
    scanf("%d",&age);
    printf("Your age is: ");
    printf("%d\n",age);
    if(age>=18) 
        {
        printf("Grown Frau/Mann\n ");
        }
    if(age<18) 
        {
        printf("Young boi\n");
        }
    printf("Enter a big number.\n");
    int nummer;
    scanf("%d",&nummer);
    printf("%d\n",nummer);
    int a;
    int b;
    printf("Insert first and second number pls:\n");
    scanf("%d",&a);
    scanf("%d",&b);
    printf("You have chosen %d and %d",a,b);
    return 0;
    }


这篇关于当我在运行时设置两个输入时,Scanf()要求三个输入。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆