c語言輸入輸出問題

2022-09-22 04:35:09 字數 698 閱讀 3683

1樓:遇好慕賓閎

緩衝區裡資料沒清空

#include

void

main()

這樣就對了,每次輸入後強制清空標準輸入流

2樓:

問題出在你定義的結構體:

char birthday[7];

char workdate[7];

改成char birthday[8];

char workdate[8];

你輸入的是7個字元。但是作為字串儲存的時候,末尾的'\0'也是要儲存的。而你定義的char陣列位數就少了1位。

這樣會引起問題:『\0』仍然在緩衝區中,你第二次scanf的時候,變數會先接收這個'\0'。由此才引發裡以上的一連串問題哦。

3樓:匿名使用者

char birthday[7]; char workdate[7];

這裡有問題,你輸入的是一個7個字元的字串,而輸出的時候編譯器是根據當前字元是否是'\0'來決定是否停止的。你只有放7個字元的地方,'\0'沒放進去,輸出的時候就會把下一個字串的內容也輸出來。把兩個的長度都變成8試一試。

4樓:

在輸入工作年月之前重新整理一遍輸入緩衝區試試

fflush(stdin);

ps:需要包含標頭檔案 stdlib.h

C語言中如何實現多組資料輸入輸出

c語言中有一個 標準輸入函式,即 scanf函式,它可以讀取輸入的任意格式版型別的資料。scanf函式也有返 權回值,返回型別為int型別,它返回成功讀入的專案的個數。如果它沒有讀取任何專案 當它期望一個數字而您卻鍵入了一個非數字字串時就會發生這種情況,scanf 會返回0。當它檢測到 檔案結尾 e...

c語言問題 輸入輸出字串,出錯處在哪裡

scanf的使用錯誤,你自己看下這個就明白了。include int main void 你可以把第一個scanf寫成這樣,scanf a d b d n a,b 或才在第二個scanf的字串前面加上一個 n這樣就沒問題了。include int main 額。換行被接收了 函式寫錯了,在主函式裡寫...

51微控制器輸入輸出問題,本人初學者,不懂,還望大家多多指教。問題如圖所示

p2 0xff p2埠全部送高電平,使能弱上拉,等效於接一個50k左右的電阻到電源 while 1 51微控制器輸入輸出問題,本人初學者,不懂,還望大家多多指教。問題如圖所示 怎麼指教呢,其bai實還是二進位制,單du 純操作一個埠時zhi 按位賦值。你想dao 輸出高電 回平就給1,想輸出低電平就...