所以我有一个代码,可以输入任意数量的任意长度的行。每行通常包含一个或多个由空格分隔的单词。我必须输出那个字符串
这就是我的代码。我是C语言的新手,不要对我的朋友如此粗鲁
哑代码;)
#包括<;标准h>;
#包括<;stdlib.h>;
int main(){
int i=1;
字符**列表=malloc(1000*sizeof(字符*);
而(!feof(stdin)){
列表[i]=malloc(1000*sizeof(char));
printf(“输入字符串,数字为%d:”,i);
scanf(“%99[^\n]”,列表[i]);
i++;
}
printf(“\n”);
对于(int j=1;j<;i;j++)
printf(“您的字符串按数量%d:%s\n”,j,list[j]);
返回0;
}
但是我有scanf的问题,我不能在空白后继续输入。
我想我的问题是
scanf(“%99[^\n]”,列表[i])
除此之外,我不能使用gets()、getchar()系列以及规范%c和%m
使用%99[^\n]进行扫描,直到遇到\n。因此,第一行的读取是顺利的。但由于未扫描\n,因此它仍保留在stdin的未读部分。下次扫描时,您会再次遇到“\n”,实际上您已扫描了一个空字符串。因此,使用%99[^\n]%*c部分表示忽略字符