char year[5],mon[3],day[3];
scanf("%s-%s-%s",mon,day,year);
printf("%s-%s-%s",year,mon,day);
以上代碼我想要做的就是把日期的位置從<月-日-年>到<年-月-日>進行轉換,比如01-15-2020換成2020-01-15。
但是在運行和除錯的程序中我發現是無法正常的輸入和輸出的。
所以接下來我又試了以下代碼:
char year[5],mon[3],day[3];
scanf("%s %s %s",mon,day,year);
printf("%s %s %s",year,mon,day);
以上代碼去掉雙引號內的“-”后又能正常的輸入和輸出。
緊接著我又試了下:
printf("5-6");
發現也能輸出成功。
請問是什么原因造成的帶“-”后無法正常輸出呢?
uj5u.com熱心網友回復:
char year[5],mon[3],day[3];
scanf("%2s-%2s-%4s",mon,day,year);
printf("%.4s-%.2s-%.2s",year,mon,day);
uj5u.com熱心網友回復:
char year[5],mon[3],day[3];
while (1) {
if (3==scanf("%2s-%2s-%4s",mon,day,year)) {
printf("%.4s-%.2s-%.2s",year,mon,day);
break;
} else {
printf("Input MM-DD-YYYY:");
fflush(stdout);
rewind(stdin);
}
]
uj5u.com熱心網友回復:
太謝謝了!!!是因為%s只能一次讀入一個單詞,而一個數字在記憶體里其實相當于一個單詞吧!轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/216401.html
標籤:C語言
上一篇:求用C語言實作SVR的程式
下一篇:為啥出錯啊
