yuanyangxin 发表于 2017-12-2 13:36:00

c++中getline(字符串变量,输入长度,字符串结束符)输入长度指的是什么?

为什么我把输入长度设定为10,最后获取的字符串只有9个?
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
        char str;
        cout << "数组长度30,可接受的输入长度10" << endl;
        cout << "请输入任意字符串";
        cin.getline(str, 10, '\n');
        cout << "str字符串变量为" << str << endl;

        system("pause");
        return 0;
}

数组长度30,可接受的输入长度10
请输入任意字符串zcsasdassafsafsadfadsfdas
str字符串变量为zcsasdass

BngThea 发表于 2017-12-2 13:50:17

你定义的数组str长度不就是10吗?

yuanyangxin 发表于 2017-12-2 14:00:26

BngThea 发表于 2017-12-2 13:50
你定义的数组str长度不就是10吗?

“str字符串变量为zcsasdass”
它输出的长度为9哎

BngThea 发表于 2017-12-2 14:12:28

yuanyangxin 发表于 2017-12-2 14:00
“str字符串变量为zcsasdass”
它输出的长度为9哎

因为getline需要在最后添加'\0',所以只能存9个字符

yuanyangxin 发表于 2017-12-3 09:52:31

BngThea 发表于 2017-12-2 14:12
因为getline需要在最后添加'\0',所以只能存9个字符

喔喔 谢谢您
页: [1]
查看完整版本: c++中getline(字符串变量,输入长度,字符串结束符)输入长度指的是什么?