关于在c [duplicate]中使用fgets和scanf读取输入的问题

问题描述 投票:0回答:1

我最近一直尝试在c中进行练习。

我想读取类似“ SET 0”的输入(请注意,稍后将对实际文本进行解析。)>

我尝试过fgets就是这样:

char in[20];
//ok, this reads the first line, the first input is meant to be a number
scanf("%s",in);

if(isdigit(in[0])){

    char array[]={'?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?','?'};

    auto counter = atoi(in);

    while(counter !=0){

        fgets(in, sizeof(in),stdin);

由于某种原因,当我键入“ SET 0”并且使用fgets时,in变量为空(将不打印任何内容。)>

我尝试过scanf,但它不会读取该号码。

关于我能做什么的任何想法/建议?

提前感谢!

我最近一直在尝试进行c中的练习。我想读取类似于“ SET 0”的输入(请注意,稍后将解析实际文本)。我尝试了fgets,就像这样:...

c scanf fgets
1个回答
0
投票

除非您知道为什么scanf()是邪恶的,否则不要将fgets()scanf()混合使用。

[fgets()读取了未输入'\n'的用户输入的第一行的剩余部分scanf()

© www.soinside.com 2019 - 2024. All rights reserved.