C++ 使数组(char)1在stdio.h上出错

C++ 使数组(char)1在stdio.h上出错,c++,arrays,char,gets,C++,Arrays,Char,Gets,我试图将用户输入的文本保存在一个字符数组中,但结果并不理想。我尝试过这个方法,但是我认为它在C++ 11之后删除了。 这是我的密码: #include "stdafx.h" #include <iostream> using namespace std; int main() { char sentence[2]; cout << "Enter your sentences : "; gets_s(sentence); cout &l

我试图将用户输入的文本保存在一个字符数组中,但结果并不理想。我尝试过这个方法,但是我认为它在C++ 11之后删除了。 这是我的密码:

#include "stdafx.h"
#include <iostream>
using namespace std;

int main()
{
    char sentence[2];

    cout << "Enter your sentences : ";
    gets_s(sentence);

    cout << sentence << endl;

    system("PAUSE");
    return 0;
}
#包括“stdafx.h”
#包括
使用名称空间std;
int main()
{
char语句[2];

cout很可能您试图获取长度超过2个字符的字符串文字,但无法将其插入到以下缓冲区:

char sentence[2];
将缓冲区大小增加到更可接受的大小:

char sentence[255];

< C++ >你应该更喜欢字符数组,而不是<代码> GETSys .< /P>这不是一个错误消息,请给出编译器的精确输出。没有错误消息,它不工作。是一个由两个字符组成的数组。它可以容纳两个字符,并且只能容纳两个。如果要容纳更多字符,则必须增加数组的大小。使用get\s将导致数组中的最后一个字符成为行尾字符(
\n
)。这意味着您实际上只能容纳一个字符(这不是一个句子)。您可能会在句子[1]中遇到运行时错误因为条件,在存储N-1个字符到缓冲区后没有遇到“结束”或EOF。“如果您想存储200个字符的句子,那么@罗恩有一个选项。下面是不推荐C和C++的混合。如果你使用C语言I/O,比如<代码>得到< /代码>,使用C语言输出,如<代码> Primtf<代码>。U使用C++语言I/O,如<代码> CUT/COD>,使用C++语言输入,如<代码> CIN < /代码>。混合这两个不是好主意。但是为什么1不工作?“A”字是字符的1个字符……直到有人输入了255个字符或更长的句子。回到平方1。@在C中,你必须添加一个空终止符。“a”->{ a’,‘0’}。只需使用类似于STD::string的适当C++容器。