C++ 不使用字符串大小的cin.getline()

C++ 不使用字符串大小的cin.getline(),c++,cin,getline,istream,C++,Cin,Getline,Istream,是否可以使用cin.getline()而不表示数组大小? 也就是说,使用以下伪代码: char array[15]; cin.getline(array,'.'); // '.' Is the delimiter. 这行吗?会发生什么: 这将编译并运行,但您的分隔符将不起作用,您将获得未定义的行为。此外,当没有给出数组大小时,您将丢失1)异常处理。(当输入大于大小时,将出现2)“堆栈损坏”运行时错误)。给定尺寸后,剩余长度将被切割 1) 异常处理: 如果为数组定义一个大小,它将对用户输入进行

是否可以使用
cin.getline()
而不表示数组大小? 也就是说,使用以下伪代码:

char array[15];
cin.getline(array,'.');  // '.' Is the delimiter.

这行吗?

会发生什么:

这将编译并运行,但您的分隔符将不起作用,您将获得未定义的行为。此外,当没有给出数组大小时,您将丢失1)异常处理。(当输入大于大小时,将出现2)“堆栈损坏”运行时错误)。给定尺寸后,剩余长度将被切割

1) 异常处理:

如果为数组定义一个大小,它将对用户输入进行子字符串化,这样您在字符串中写入的字符不会超过分配的空间。(即超过15个)(仅当您定义尺寸时,此类型的子字符串才可用

2) 堆栈损坏错误:

如果不定义大小,您将得到一个“堆栈损坏错误”,这意味着您试图写入的内容超过了分配的内容

3) 运行您的代码: 您的代码将运行,但在运行时会有未定义的行为

以正确的方式进行: 正如前面提到的“lightnes在轨道上比赛”,这是一条路:

std::string str;
std::getline(std::cin, str, '.');

更多内容请阅读:

将发生什么:

这将编译并运行,但您的分隔符将不起作用,您将获得未定义的行为。此外,当没有给出数组大小时,您将丢失1)异常处理。(当输入大于大小时,将出现2)“堆栈损坏”运行时错误)。给定尺寸后,剩余长度将被切割

1) 异常处理:

如果为数组定义一个大小,它将对用户输入进行子字符串化,这样您在字符串中写入的字符不会超过分配的空间。(即超过15个)(仅当您定义尺寸时,此类型的子字符串才可用

2) 堆栈损坏错误:

如果不定义大小,您将得到一个“堆栈损坏错误”,这意味着您试图写入的内容超过了分配的内容

3) 运行您的代码: 您的代码将运行,但在运行时会有未定义的行为

以正确的方式进行: 正如前面提到的“lightnes在轨道上比赛”,这是一条路:

std::string str;
std::getline(std::cin, str, '.');

更多内容请阅读:

将发生什么:

这将编译并运行,但您的分隔符将不起作用,您将获得未定义的行为。此外,当没有给出数组大小时,您将丢失1)异常处理。(当输入大于大小时,将出现2)“堆栈损坏”运行时错误)。给定尺寸后,剩余长度将被切割

1) 异常处理:

如果为数组定义一个大小,它将对用户输入进行子字符串化,这样您在字符串中写入的字符不会超过分配的空间。(即超过15个)(仅当您定义尺寸时,此类型的子字符串才可用

2) 堆栈损坏错误:

如果不定义大小,您将得到一个“堆栈损坏错误”,这意味着您试图写入的内容超过了分配的内容

3) 运行您的代码: 您的代码将运行,但在运行时会有未定义的行为

以正确的方式进行: 正如前面提到的“lightnes在轨道上比赛”,这是一条路:

std::string str;
std::getline(std::cin, str, '.');

更多内容请阅读:

将发生什么:

这将编译并运行,但您的分隔符将不起作用,您将获得未定义的行为。此外,当没有给出数组大小时,您将丢失1)异常处理。(当输入大于大小时,将出现2)“堆栈损坏”运行时错误)。给定尺寸后,剩余长度将被切割

1) 异常处理:

如果为数组定义一个大小,它将对用户输入进行子字符串化,这样您在字符串中写入的字符不会超过分配的空间。(即超过15个)(仅当您定义尺寸时,此类型的子字符串才可用

2) 堆栈损坏错误:

如果不定义大小,您将得到一个“堆栈损坏错误”,这意味着您试图写入的内容超过了分配的内容

3) 运行您的代码: 您的代码将运行,但在运行时会有未定义的行为

以正确的方式进行: 正如前面提到的“lightnes在轨道上比赛”,这是一条路:

std::string str;
std::getline(std::cin, str, '.');
更多内容请阅读:

是:加入20世纪:

是:加入20世纪:

是:加入20世纪:

是:加入20世纪:



即使我假设你在处理C++,你也应该用你正在处理的语言来标记你的问题。即使我假设你在处理C++,你也应该用你正在处理的语言来标记你的问题。即使我假设你在处理C++,你应该用你正在处理的语言来标记你的问题。即使我假设你在处理C++,你也应该用你正在处理的语言来标记你的问题。<代码>此外,你将[SLC]异常处理,当没有给出数组大小时丢失了什么类型的异常处理?
当输入大于该大小时,只有在幸运的情况下,才会出现“堆栈损坏”运行时错误
。更常见的情况是,您只会损坏/损坏其他对象。
这将编译并运行
,假设您谈论的是
char array[]
。他的问题是,如果它有效,我只是描述了他的行的行为。但我完全是从“当”而不是“如何阅读用户输入”的角度来看待它的,我质疑