用C语言读取字符串

用C语言读取字符串,c,C,我正在试着读一个名字并打印出来。但是控件没有等待我输入名称并直接打印带有一些无意义字符的输出 #include <stdio.h> using namespace std; int main() { char name[20]; printf("Enter name: "); scanf("%s", name); printf("Your name is %s", name); return 0; } #包括 使用名称空间std; int

我正在试着读一个名字并打印出来。但是控件没有等待我输入名称并直接打印带有一些无意义字符的输出

#include <stdio.h>
using namespace std;

int main() {
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s", name);
    return 0;
}
#包括
使用名称空间std;
int main(){
字符名[20];
printf(“输入名称:”);
scanf(“%s”,名称);
printf(“您的名字是%s”,name);
返回0;
}
这里有错误吗?

在C这行:

using namespace std;
不存在

这是您的代码:

#include <stdio.h>

int main() {
    char name[20];
    printf("Enter name: ");
    scanf("%19s", name);
    printf("Your name is %s", name);
    return 0;
}
#包括
int main(){
字符名[20];
printf(“输入名称:”);
scanf(“%19s”,名称);
printf(“您的名字是%s”,name);
返回0;
}

提示:假设缓冲区是20,使用
scanf(“%19s”,name)防止缓冲区溢出。< /p>命名空间STD不是C,它是C++。这不是C,<代码>使用命名空间< /代码>是C++。删除它,并确保你构建为C。你的代码编译和工作良好的C++编译器。如果你想用C编译器编译它,你需要用命名空间std删除
行,然后它也将编译并工作。因此,请告诉我们更多关于您具体在做什么,您有哪些操作系统,哪个编译器,版本,IDE,您在哪里键入什么等。这里可能发生的情况是:1)代码无法编译2)您正在运行一个同名的旧的、不相关的可执行文件。在codechef上,您选择了自定义输入吗?它在……上运行良好。现在,下一个问题可能是“我如何使
scanf()
接受空格?”没有。删除名称空间后检查。您是否已经尝试使用scanf(“%19s”,name);而不是scanf(“%19s”,name)?也许您必须使用换行符。
在C中没有名称空间
。。。。那么,我的整个生活都是一个谎言,请仔细解释一下第6.2.3章,
C11
?@Overflow404那么,请注意更改声明以避免混淆。。可能会添加
关键字
…只是一个建议。