看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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