【发布时间】:2015-04-22 04:53:14
【问题描述】:
#include "stdio.h"
int main() {
int ch,i;
for (i = 0; i < 10000; ++i) {
scanf(" %c", &ch);
putchar(ch);
}
return 0;
}
如果您输入的字符数少于 1000,它会起作用,但如果您一次输入的字符数为 10000,则程序会停止。我可能认为这是因为标准输入缓冲区。 我该如何解决这个问题?
这里有更具体的来源。
#include "stdio.h"
#include "stdlib.h"
int main() {
int i,n;
char *p, ch;
scanf("%d", &n);
p = (char*) malloc(sizeof(char) *n);
if (p == NULL) {
return -1;
}
for (i = 0; i < n; ++i) {
scanf(" %c", &ch);
putchar(ch);
}
return 0;
}
Abode 来源是样本。
- 放入n(要阅读的字数)然后放入长长的字符串。程序已停止或等待完成。
输入示例 1.
2000 lsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdk lsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdkalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalssdafsdfsdfdd
这个不工作。
但下面的工作。 2.
1000 jsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdkalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalssdafsdfsdfddkdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalsdklsakdjldjsalkfjalssdafsdfsdfdd1
【问题讨论】:
-
我想知道你是如何一次放置 10000 个字符的。虽然你可能想要 i
-
在许多系统上,在终端驱动程序锁定并拒绝接受之前,您不能在单行终端输入上输入超过固定长度(可能只有大约 256 个字节)更多的。在您的系统上,该数字介于 1,000 到 10,000 之间。您必须确定它在哪里(可能是 1024、2048、4096、8192 或比其中一个少一两个字符)。鉴于您的更新,该限制最有可能是 1024 字节。
-
在其他 shell 或操作系统中尝试。
-
p = (char*) malloc(sizeof(char) *n);是什么意思,你后来什么都没做。 -
您是如何将输入输入到您的程序中的?