[問題] 防止內存操作越界
程式是想要輸入10個字元
不管輸入完一個字元後是按空白鍵或是enter到下一行
一但到達10個字元之後便要跳出並列印出...
#include<stdlib.h>
#include<stdio.h>
#include<assert.h>
#include<string.h>
/*
防止內存操作越界。
*/
#define max 10
int main(void)
{
int i=0;
int count=0;
char array[max];
printf("input 10 character\n");
for(int i=0;i<max;i++)
{
scanf(" %s",&array[i]);
}
system("pause");
printf("%s\n",array);
system("pause");
return 0;
}
現在碰到的問題是...
1.只有輸入完一個字元後,按enter才能停止輸入迴圈
若是輸入完一個字元後按空白鍵,可以一直輸入
無法在迴圈到達10的時候就停止
不知道要怎麼改呢???
2.另外就是...如果使用scanf(" %c",&array[i]);
列印出來時最後會顯示一個">"
這是為什麼阿?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.9.4.125
推
12/30 17:00, , 1F
12/30 17:00, 1F
→
12/30 17:01, , 2F
12/30 17:01, 2F
→
12/30 17:01, , 3F
12/30 17:01, 3F
→
12/30 17:03, , 4F
12/30 17:03, 4F
推
12/30 17:04, , 5F
12/30 17:04, 5F
→
12/30 17:12, , 6F
12/30 17:12, 6F
→
12/30 17:41, , 7F
12/30 17:41, 7F
推
12/30 17:59, , 8F
12/30 17:59, 8F
噓
12/30 21:02, , 9F
12/30 21:02, 9F
推
12/30 21:34, , 10F
12/30 21:34, 10F
推
12/30 22:43, , 11F
12/30 22:43, 11F
推
12/31 04:34, , 12F
12/31 04:34, 12F
→
12/31 04:34, , 13F
12/31 04:34, 13F
→
12/31 04:35, , 14F
12/31 04:35, 14F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章