※ 引述《bil193 (丁丁)》之銘言:
原文恕刪
1.
多虧了b大我才知道scanf還可以這樣用
若把17行改成while((tmp=getchar())!='\n')應該可以達到b大想要的
也就是若輸入 989o => 緩衝區: '8' '9' 'o' '\n'
2.
現在把第10行 改成scanf("99%s",&ch)
再輸入 9989o => ch 會被儲存 '8' '9' 'o' '\0' 緩衝區: '\n'
但若輸入 989o => ch 不被儲存 緩衝區: '8' '9' 'o' '\n'
也就是'\0'是在儲存字串時建立 而非讀入字串時建立
原程式碼
#include <iostream>
#include<conio.h>
using namespace std;
int main()
{
int a;
char ch[6],tmp;
memset(&ch,'*',6);
scanf("99%c",&ch);
//while(getche()!='\n');
for(int i=0;i<6;i++)
{
printf("%d:\'%c\'\n",i,ch[i]);
}
cout<<ch<<'\n';
while((tmp=getchar())!='\n')
{
printf("\'%c\'",tmp);
}
scanf("88%c",&ch);
cout<<'\n';
for(int i=0;i<6;i++)
{
printf("%d:\'%c\'\n",i,ch[i]);
}
system("pause");
return 0;
}
==========================================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.205.27