我想写一个程序来读和写(到stdout)一组不同的字符串
长度。我的程序有什么问题,因为它只读取n-1字符串而不是给定的n?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char** vectorschar;
int n,i;
char c;
printf("n: ");
scanf("%d",&n);
vectorschar=(char**)calloc(n,sizeof(char*));
for(i=0;i<n;i++)
{
vectorschar[i]=(char*)calloc(30,sizeof(char));
}
for(i=0;i<n;i++)
{
gets(vectorschar[i]);
}
for(i=0;i<n;i++)
{
puts(vectorschar[i]);;
}
return 0;
}
最佳答案
排在队伍后面
scanf("%d",&n);
执行时,换行符
'\n'
留在流中。第一次调用gets()
时使用它。您可以使用以下命令跳过换行符:
scanf("%d%*[^\n]",&n);
getchar();