產生一個程式使用do-while迴圈計算使用者輸入的字元數(不包括空白)。當程式遇到輸入第一個#字元時就停止。
我目前只會寫出這些:
#include
using namespace std;
int main()
{
char letter=0;
int number=0;
cout<<"Enter characters:";
cin>>letter;
do
{
if(letter!='#')
{
number++;
cin>>letter;
}
else
exit(1);
}while(letter!='#');
cout<<"你輸入了"<
}
這程式有幾個錯誤,比如當我輸入ABCDE時,之後必須再輸入 #才能跳開迴圈,最後才顯示說輸入了5個字元。
誰能幫我修改程式以合乎題意呢?或者是你用自己的方法寫出程式。
2007-07-16 05:58:40 · 3 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
這是比較簡單的寫法(有限制字元數)……
如果沒有限制字元數,必須利用「鏈結串列」或是逐步配置記憶體來記錄使用者輸入的字元。
#include
#include
#define MAX 100 //限制字元數為 100 個
using namespace std;
int main(int argc, char *argv[])
{
char ch[MAX];
int i;
for(i=0;i
cout<<"Input a character: ",cin>>ch[i];
if(ch[i]=='#')
{
break;
}
}
cout<<"You input "<
system("PAUSE");
return EXIT_SUCCESS;
}
2007-07-16 06:39:47 · answer #1 · answered by Big_John-tw 7 · 0⤊ 0⤋
把月狗的程式加入空白的判段. 程式下
if( (ch=getche())!='#' &&
!isspace(ch) ) // 空白的判段
number++;
2007-07-25 13:01:51 · answer #2 · answered by SiYu 5 · 0⤊ 0⤋
這是我在Dev-C 編譯過可執行的程式
#include
#include
#include
int main() {
char ch=0;
int number=0;
printf("Enter characters: ");
do {
if( (ch=getche())!='#' )
number++;
} while( ch!='#' );
printf("\n你輸入了 %d 個字元\n", number);
system("PAUSE");
return 0;
}
你用cin的時候, 必需要等到按下Enter程式才會讀到你輸入的字串, 使用getch()則每次輸入就會被程式讀到
2007-07-26 09:20:53 補充:
對喔, 是我漏看了, 謝謝喵喵咪
2007-07-16 18:14:29 · answer #3 · answered by Walala 5 · 0⤊ 0⤋