【发布时间】:2022-01-20 15:36:54
【问题描述】:
习惯了printf和C中的变量,然后我开始使用scanf函数,代码如下(无耻盗用fresh2refresh.com)
#include <stdio.h>
int main()
{
char ch;
char str[100];
printf("Enter any character \n");
scanf("%c", &ch);
printf("Entered character is %c \n", ch);
printf("Enter any string ( upto 100 character ) \n");
scanf("%s", &str);
printf("Entered string is %s \n", str);
}
除了它没有运行,无论是在 vscode 输出还是 cmd 上。它甚至没有从第 5 行打印“输入任何字符”,它表明代码正在运行,但甚至不接受输入(并且只有在我单击停止代码运行按钮后才会停止)
有什么建议吗?
【问题讨论】:
-
scanf("%s", &str);是错误的。应该是scanf("%s", str);。但我怀疑这会阻止它正常工作。 (在你说“但我认为我总是需要&和scanf之前,是的,这是真的,除了%s是该规则的一个例外。这是与@987654327 相邻的许多令人讨厌的事情之一@.) -
printf 现在可以工作了,但是 scanf 不行
-
@SteveSummit,我认为自己是一位经验丰富的 C 程序员,我偶尔会使用
scanf。事实上,我认为这是我的调味品的一个标志,我知道什么时候这样做是合理的(不是特别频繁),以及当我选择使用scanf时如何让我安全可靠地工作。 -
请准确显示您输入的内容。您是否键入了一个字符键,然后按
键?在你按下 之前什么都不会发生。 -
@ChaoticNeutralFurry 我对 vscode 一无所知,但我看到很多像你这样的问题。我不知道它是默认还是错误,或者是容易犯的配置错误,或者什么,但我们经常听到它甚至无法运行最基本的程序。这是令人震惊的沮丧,因为如果你只是在学习,你自然会认为你一定犯了一个错误。
标签: c variables visual-studio-code printf scanf