我曾經使用get,但後來我聽說它已從c11中刪除,並且它的整體非常危險。 所以我做了一些搜索,發現你可以使用fgets()來做同樣的事情。替代獲取?
問題是,當我使用fgets()時,它似乎也複製了行的末尾,最終導致了額外的不需要的行。
要告訴你我是什麼意思:
//if I have
char key[30];
fgets(key, sizeof(key), stdin);
//now if ender for instance: Doggo and do:
printf("The key is:%s|hozaah!\n", key);
//I expect it to print:
The key is:Doggo|hozaah!
//Instead it prints:
The key is:Doggo
|hozaah!
有沒有辦法來解決這個問題?還是有另一個功能,我可以使用呢?
發現密鑰[strcspn(key,「\ n」)] = 0;像魅力一樣工作,謝謝! – Mathue24
@Kerrek冷酷的傢伙,他只是想幫忙,不需要如此自大大聲笑 – Mathue24
@ Mathue24:是的,道歉,夠公平。我對C字符串周圍的糟糕貨物查詢有些過於敏感,因爲大多數軟件漏洞都來自對字符串的理解不足和錯誤理解。這是我想讓人們仔細思考的問題。 –