gpt4 book ai didi

c - 由于 scanf 函数,C 程序中的输出不令人满意

转载 作者:行者123 更新时间:2023-11-30 15:37:11 25 4
gpt4 key购买 nike

我正在执行这个程序。但是在运行这个程序时,首先它会询问“输入测试用例的数量”,然后我输入测试用例的数量。但即使在输入测试用例的数量之后,光标再次处于询问用户输入的状态。我不知道在给出测试用例的数量作为输入后为什么还要求另一个输入。任何帮助将不胜感激?

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main()
{
int i,N;
char * arr[N];
printf("Enter the Number of Test Cases\n");
scanf("%d \n",&N);
printf("Enter the string\n");

for(i=0;i<N;i++)
{
arr[i]= (char *)malloc(100*sizeof(char));
scanf(" %s ",arr[i]);
}
for(i=0;i<N;i++)
{
printf("The Enter String : %s \n",arr[i]);
}
for(i=0;i<N;i++)
{
free(arr[i]);
}
return 0;
}

感谢 friend 们讨论这个问题。我得到了答案,真正的问题在于 scanf 函数。我有一个很好的链接来阅读这个问题。希望你喜欢。 http://c-faq.com/stdio/gets_flush2.html

最佳答案

问题出在scanf语句中

scanf("%d \n",&N);

请删除 ' ''\n' 即可正常工作

scanf("%d",&N);

另外,

char * arr[N];

不按您想要的方式工作。更好的解决方案是。

char **arr = NULL;
/* get input for N */
arr = malloc(N * sizeof(char *));

关于c - 由于 scanf 函数,C 程序中的输出不令人满意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296653/

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