English 中文(简体)
为什么扫描在运行此代码时 需要两个输入?
原标题:Why does scanf take two inputs when running this code?
  • 时间:2024-05-19 02:13:06
  •  标签:
  • c
  • scanf

当使用扫描功能进行输入时,会给出两个输入。

首先,我是一个 python 程序程序员, 试图学习 C。 我试图寻找为什么会发生这种情况, 但没有发现任何结果。 下面的代码是:

#include <stdio.h>

int main() {

    int age;

    printf("Enter your age: ");
    scanf("%d
", &age);
    printf("Your age is %d
", age);
    
    return 0;
}

在 VSCode 运行和调试时, 这就是我得到的:

Enter your age: 23
12
Your age is 23

任何帮助都将不胜感激。

最佳回答

The is unnecessary in the scanf format string. It tells scanf to continue reading any number of whitespace characters, until it finds the next non-whitespace character.

代之以使用 scanf ("%d", & amp;age);

问题回答

printf 语句:此输出输出到控制台的即时“ 输入您的年龄 : ” 。

scanf Statement: This is where the issue lies. The format string "%d " tells scanf to expect an integer followed by a newline character.

The in the scanf format string causes scanf to wait for a newline character after reading the integer. This means that scanf will not complete until you press Enter twice: once after entering the integer and once more for the newline.

校正使用率

#include <stdio.h>

int main() {
    int age;
    printf("Enter your age: ");
    scanf("%d", &age);
    printf("Your age is %d
", age);
    
    return 0;
}

printf 语句:输出“输入年龄:”到控制台。

scanf 语句: 格式字符串 “%d”告诉 scanf 期待一个单整数。 这将在不等待额外新行字符的情况下正确工作 。





相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签