主題:
[資訊電機]
[問題]c++一次輸入很多個字元的問題
[打印本頁]
發表人:
老江
時間:
2005-5-4 09:52 PM
主題:
[問題]c++一次輸入很多個字元的問題
原碼
#include<stdio.h>
void shift(char *v,char *w,char *x,char *y,char *z);
int main(void)
{
char a,b,c,d,e;
printf("請輸入五個字元>");
scanf("%c %c %c %c %c",&a, &b, &c, &d, &e);
shift(&a, &b, &c, &d, &e);
printf("%c%c%c%c%c\n",a,b,c,d,e);
return 0;
}
void shift(char *v,char *w,char *x,char *y,char *z)
{
char t1;
t1=*v;
*v=*w;
*w=*x;
*x=*y;
*y=*z;
*z=t1;
}
這個我是想要做出像輸入abcde輸出bcdea這樣
不過在輸入完之後按下enter程式就自己關掉了
於是我記取了上次的教訓
加上了迴圈看看
#include<stdio.h>
void shift(char *v,char *w,char *x,char *y,char *z);
int main(void)
{
char a,b,c,d,e;
while(2){
printf("請輸入五個字元>");
scanf("%c%c%c%c%c", &a, &b, &c, &d, &e);
shift(&a, &b, &c, &d, &e);
printf("%c%c%c%c%c\n",a,b,c,d,e);
}
return 0;
}
void shift(char *v,char *w,char *x,char *y,char *z)
{
char t1;
t1=*v;
*v=*w;
*w=*x;
*x=*y;
*y=*z;
*z=t1;
}
結果可以看到我要的
但是第二個迴圈開始又是亂七八糟
不過那是getchar的問題就算了
我想問的是為什麼我第一個程式會沒辦法做第二個printf出來就直接關掉了
發表人:
Acute
時間:
2005-5-5 02:14 AM
你怎樣執行你的程式的? @_@
在Windows 底下...你如果執行command line 程式, 程式執行完, 該視窗會被關閉
你應該先開啟"命令列模式" 的視窗
然後才從該視窗內去執行你的程式
這樣子, 視窗就不會被關閉, 你就能看見你的程式的執行結果
Acute.
發表人:
老江
時間:
2005-5-5 07:06 PM
我都編譯完之後
直接點那個執行來看
發表人:
Acute
時間:
2005-5-6 02:34 AM
不行哩... 理論上... 他是呼叫外部執行... 跟你從XP 直接執行一個DOS 程式意思一樣
你必須進入命令列模式後, 才去執行那個程式才行
Acute.
發表人:
deeping
時間:
2005-5-6 11:37 AM
引用:
老江
寫到:
我都編譯完之後
直接點那個執行來看
試看看最後加個
system("PAUSE");
return EXIT_SUCCESS;
應該就會在dos窗下顯示後停止了^_^
發表人:
DK
時間:
2005-5-6 06:25 PM
印象中直接在return 0前面加system("PAUSE");就可避免執行完直接關掉.
不過標頭檔應該要加
CODE:
[Copy to clipboard]
#include <stdlib.h>
發表人:
老江
時間:
2005-5-6 07:57 PM
引用:
DK
寫到:
印象中直接在return 0前面加system("PAUSE");就可避免執行完直接關掉.
不過標頭檔應該要加
CODE:
[Copy to clipboard]
#include <stdlib.h>
那個我有加
不過因為copy太順
論壇把< 跟>看成是html語法所以就沒出現
發表人:
etsos
時間:
2005-9-30 01:51 AM
在最後面加入getch();
歡迎光臨 TWed2k (http://twed2k.org/)
Powered by Discuz! 4.1.0