0
我有這個項目的問題,我嘗試搜索論壇上的答案,但我什麼也沒找到。Sscanf由命令行採取的字符串
struct orario {
int hours;
int minutes;
int seconds;
char *format;
}orario1;
int main(int argc, char *argv[]) {
sscanf(argv[1],"%d:%d:%d %s",&orario1.hours,&orario1.minutes,&orario1.seconds,orario1.format);
printf("%d:%d:%d %s",orario1.hours,orario1.minutes,orario1.seconds,orario1.format);
的輸出是數字部分,但字符串(例如AM或PM)正確是出乎意料的(空)。
我無法識別我的錯誤,有人可以找到並告訴我?!
謝謝。
在使用'argv [1]'之前,你應該確實檢查用戶是否提供了一個(或多個)參數。如果沒有提供參數,那麼'argv [1]'將是一個空指針,'argv [2 ]'而且會超出界限。這個檢查是通過測試'argc> = 2'完成的。 –
是的,我知道,我會做。 – Fabio