字符串输入超过1000个字符时执行挂起
Execution hangs for string input greater than 1000 characters
字符串输入超过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有故障。它在服务器上运行良好
如果将Unicode输入传递给它,缓冲区将溢出&你会崩溃的。
编辑后添加:
如果你幸运的话。请注意,小写英文Unicode字符仍然是,每个字符两个字节。如果你的输入来自一个文件,你无法通过查看它是否是Unicode来判断,你需要在十六进制编辑器中打开它来确定。
要测试这一点,请将缓冲区设置为输入(p[2001], q[2001]
)的两倍大。
但是使用静态缓冲区是错误的方法,string
是正确的方法:上限大约是2^32个字符。
相关文章:
- 挂起和取消挂起一个文件DLL
- 如何防止C++遗留代码中的挂起指针
- 为什么所有C++编译器都会崩溃或挂起此代码
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 构建挂起,即使是适度的文件大小
- 循环挂起迭代的 std::擦除 on std::list
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- Node.js fs.open() 在尝试打开 4 个以上的命名管道 (FIFO) 后挂起
- 从不同进程中的另一个线程挂起/恢复线程或进程
- 如何防止GUI挂起,同时允许第二次操作与Qt中的第一次操作一起执行
- 当一个线程希望执行或打印某个内容时,如何挂起其他线程
- 在 dll 中执行 GetWindowText() 时挂起
- OpenMP - 在执行期间挂起
- 字符串输入超过1000个字符时执行挂起
- 大型可执行文件会导致调试器挂起
- mingw32:所有编译的可执行文件都挂起
- 程序在每次执行查询时挂起
- 如何在停止io_service之前等待所有挂起的完成处理程序被执行
- 将字符串映射到整型CPP -输出在执行期间挂起
- 可以互斥挂起执行