gpt4 book ai didi

c++ - 循环输入数据

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:16 25 4
gpt4 key购买 nike

我想输入格式为“%d:%c”的数据

我有这个:

#include <stdio.h>

int main() {
int number;
char letter;
int i;

for(i = 0; i < 3; i ++) {
scanf("%c:%d", &letter, &number);
printf("%c:%d\n", letter, number);
}
}

我希望这样:

Input: "a:1"
Output: "a:1"
Input: "b:2"
Output: "b:2"
Input: "c:3"
Output: "c:3"

但是我的程序在做这样的事情:

a:1
a:1
b:2

:1
b:2

--------------------------------
Process exited with return value 0
Press any key to continue . . .

这里有什么问题?

最佳答案

这是因为当你用 scanf 读取输入时, Enter 字符仍然留在缓冲区中,所以你下次调用 scanf会将其读作字符。

通过在格式代码中添加一个空格,告诉 scanf 跳过空白,这很容易解决,比如

scanf(" %c:%d", &letter, &number);
/* ^ */
/* | */
/* Notice leading space */

关于c++ - 循环输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20932729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com