我尝试读取C语言中带有前导空格的字符串。我也使用了"%[^\n]%*c"
,但无法获得前导空格。
输入:
“语言”
输出:
“语言”
有人可以告诉我如何在C语言中读取带有前导空格的字符串吗? I am getting like this. But I want output same as input
答案 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