簡體   English   中英

如何從標准輸入獲取在 C 中具有前導空格的字符串輸入?

[英]How to get a string input from stdin that has leading white space in C?

需要一個解決方案來獲取以空格開頭的輸入字符串嗎?

我知道一種在輸入中包含空格的方法

scanf("%[^\n]s", s);

但它僅適用於單詞之間的空格。 我需要一個以空格開頭的字符串的解決方案。 而且我還需要變量中的起始空格

要獲取一行用戶輸入,請使用fgets()

#define S_MAX_LENGTH
char s[S_MAX_LENGTH + 2];
if (fgets(s, sizeof s, stdin)) {
  s[strcspn(s, "\n")] = '\0'; // Should code want to lop off a potential trailing \n
  ....

不要使用scanf("%[^\\n]s", s); 也不會gets(s); . 它們遭受緩沖區溢出和其他問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM