1
)強制轉換:
p=(char*)&a; (
2)字元輸入中,賦值順序和快取的聯絡
scanf
是從標準輸入緩衝區中讀取輸入的資料,如果連續輸入兩個
%c格式的字元,而中間又要涉及回車,那麼第二個字元將被賦予回車。
解決辦法:
1、清空輸入緩衝區
第乙個scanf
後加入語句:
fflush(stdin); //c
語言清空輸入緩衝區函式
2、格式控制中加入空格
將第二個
scanf
改為:scanf(" %c",&ch2);//在%
號前面加乙個空格
scanf
格式輸入時要求輸入格式與格式控制符中的完全一樣(如:
scanf("abcd%c",&ch);
輸入時必須輸入
abcde,ch
得到的值為
e)空格可以抵消前面輸入的回車符。
3、直接用
ch=getchar()
吸收回車
4、當輸入完整數或字元時,後面還需要輸入字元時,為了避免輸入的字元變成回車符,可以在輸入字元前多加一條
scanf
語句來吃掉前面的回車符(或者用getchar())。此時用來吃掉回車符的
scanf
輸入可以用
%c方式,也可以用
%d方式。當用
%c方式來吃掉回車符時,回車符被讀進了
char
型別變數中,當用
%d方式來吃掉回車符時,回車符並沒有被送進
int型別變數中,而是在異常的字元輸入後,被自動清除了。
C 中關於輸入要注意的點
一 關於getline string s 如果寫getline cin,s 則預設s收入輸入的字串中換行符之前的內容,並且之後換行符會被丟棄,也就是說,如果在後面再加一句char c getchar c是讀不到換行符的 getline cin,s,c 也會把最後的c丟棄,而且該c不會被讀進s內,c預...
SQL SERVER 字串操作注意點
有一張新聞資料表tb news,該錶有字段news id int,news type int,前者是主鍵,後者是新聞所屬欄目id,現在要求是這樣 給定乙個字串a right,該字串中包含多個新聞欄目id值,即news type,並且儲存格式是 b news type v 各id值之間以逗號相隔,例如...
輸入模組中該注意的知識點
字串字面量 簡單來說就是在字串前面新增乙個 eg i love you n you love me 這樣會直接將這句話列印到控制台上。如上圖,則會發現使用 字串字面量標記的字串,它會告訴c 不要把它解釋為轉義序列。另外還可以告訴c 在串中包含換行符,因此你可以再字串中間按回車,它將作為乙個換行符出現...