gpt4 book ai didi

c - C 中的 gets() 函数输入数组

转载 作者:行者123 更新时间:2023-11-30 16:49:50 26 4
gpt4 key购买 nike

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main()
{
int n,i;
char a[10][100];
printf("\n Enter the no. of strings:");
scanf("%d",&n);

printf("\n enter the %d numbers:",n);

for(i=0;i<n;i++)
{
printf("\n %d",i);

gets(a[i]);
}
for(i=0;i<=n;i++)
{
puts(a[i]);
}
return 0;
}

如果n = 3那么它只需要索引 1 处的两个字符串和2它会跳过0 ,为什么它不接受0处的输入?

这里a是我的字符串数组。

最佳答案

错误行为的原因是scanf没有读取确认n输入所必需的ENTER。如果您添加 getsdummy 调用,它会:

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main()
{
int n,i;
char a[10][100];
printf("\n Enter the no. of strings:");
scanf("%d",&n); gets(a[0]);

printf("\n enter the %d numbers:",n);

for(i=0;i<n;++i)
{
printf("\n %d",i);

gets(a[i]);
}
for(i=0;i<n;++i)
{
puts(a[i]);
}
return 0;
}

请将我的版本与原始版本进行比较。我确实修复了输出循环中的另一个问题。

关于c - C 中的 gets() 函数输入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42432268/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com