如何在C编程中读取带前导空格的字符串?

时间:2018-07-08 14:44:19

标签: c

我尝试读取C语言中带有前导空格的字符串。我也使用了"%[^\n]%*c",但无法获得前导空格。

输入
“语言”
输出:
“语言”

有人可以告诉我如何在C语言中读取带有前导空格的字符串吗?  I am getting like this. But I want output same as input

2 个答案:

答案 0 :(得分:2)

如果您需要阅读空格较大的行,请绝对使用fgets()而不是scanf

尤其要注意,scanf("%[^\n]%*c", buf)在空行上会失败,并且可能会在无效输入上导致不确定的行为,就像gets()一样。

答案 1 :(得分:0)

您可以使用fgets()函数。C库函数char *fgets(char *str, int n, FILE *stream)从指定的流中读取一行并将其存储到str指向的字符串中。当读取(n-1)个字符,读取newline character或到达end-of-file(以先到者为准)时,它将停止。

例如:-

#include <stdio.h>
int main() {
    char String[100];
    fgets(String,100,stdin);
    printf("Output \n");
    puts(String);
}

输出:-

  Language
Output 
  Language