同時在c項目上工作我發現了以下問題。 我聲明瞭一個浮點變量並對其執行scanf操作。示例代碼 -在c中接受控制檯的值時出錯?
<#include stdio.h>
<#include conio.h>
void main()
{
clrscr();
float foo;
scanf(" %f ",&foo);
//remaining code goes here
getch();
}
我發現,錯誤是由於後在scanf函數聲明%F之前給出的空間。 但我不知道背後的原因是什麼? 謝謝。
什麼錯誤? – iabdalkader
'<#include stdio.h>'是語法錯誤。 'conio.h'是一個古老的DOS事物,不是標準C.'void main'是錯誤的。不要在命令行程序中隨機清除屏幕。要了解更多關於'scanf'的信息,請閱讀它的文檔。 – melpomene
不要忘了'scanf()'告訴你它成功完成了多少次轉換。你需要檢查你是否有一個值被轉換,所以:'if(scanf(「%f」,&foo)!= 1)...處理錯誤...'。 '%f'之前的空間是無害的;無論如何,數字轉換會跳過主要的空白區域(包括換行符)。尾隨的白色空間是有問題的; 'scanf()'在數字後面尋找空格以外的字符,以便知道它已經讀取了足夠的內容。我希望人們在C課程開始時沒有被教過'scanf()';正確使用它是一個非常困難的功能。 –