我用C语言编写了这段代码。我需要解决一个问题,需要输入5行字符串包括空格。这个程序会输出所有5行字符串,包括空格。所谓的空格是指在输入时,我可以在任何字符前面或后面加上空格。这就是我编写这段代码的原因,但我不明白为什么它不能正常工作。
#include<stdio.h>
int main() {
char str[5][100];
for(int i=0;i<5;i++) {
scanf("%[^n\]",str[i]);
}
for(int j=0;j<5;j++) {
printf("%s\n",str[j]);
}
return 0;
}
我试图只使用
scanf("%s",str[i]);
但是它忽略了输入中的所有空格并修剪了输出。此外,我尝试使用
scanf(" %[^\n]",str[i]);
这次好了一点,但它忽略了在任何字符之前的所有空格。例如输入如下:
Robin Islam
// output showing
Robin Islam
// should show
Robin Islam
我想让这个程序能够在任何地方允许空格,我的意思是输出应该与输入一样,而不忽略空格。有人可以帮忙吗?我尝试了很多方法,但不知道如何使它工作或如何解决......拜托了。
谢谢, 罗宾
scanf("%99[^\n]\n", str[i]);
。 - ddzscanf()
不太擅长读取行,建议使用fgets()
。 - chux - Reinstate Monica