我最近一直尝试在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,就像这样:...
除非您知道为什么scanf()是邪恶的,否则不要将fgets()
与scanf()
混合使用。
[fgets()
读取了未输入'\n'
的用户输入的第一行的剩余部分scanf()
。