代码挂起的字符串输入大于1000个字符
P&中的所有角色Q是小写英文字母。
#include<iostream>
#include<vector>
using namespace std;
int main(){
// 1st example
string p,q;
cin >> p >> q;
// 2nd example
char p[1500],q[1500];
scanf("%s",p);
cin >> q ;
return 0;
}
对于少于1000个字符的字符串,两者都运行良好 两个替代示例都会破坏大于1000个字符的字符串 我只需要一种方法来输入最多1500个字符串的字符串
编辑:结果XCode出错了。它在服务器上运行良好
答案 0 :(得分:-2)
如果您将Unicode输入传递给此,缓冲区将溢出&amp;你会崩溃。
已编辑添加:
如果你很幸运。请注意,小写英文Unicode字符仍然每个字节两个字节。如果您的输入来自文件,您无法通过查看是否为Unicode来判断,您需要在十六进制编辑器中打开它以确保。
要对此进行测试,请将缓冲区设置为输入(p[2001], q[2001]
)的两倍。
但是使用静态缓冲区这是错误的方法,string
是正确的方法:上限类似于2 ^ 32个字符。