[英]How to format input in C
我需要帮助弄清楚如何以特定格式输入 C {1,2,3,4}
// 这是正确的输入 - {} 中的数字用逗号分隔。
znamky = (int*) malloc (n * sizeof(int)); // I allocate memory here
if (znamky == NULL)
return EXIT_FAILURE;
printf("Pocty bodu:\n");
scanf("%c",&overeni[0]); // here I check if the first character is {; if not I exit program
if (overeni[0]!=zavorka[0])
{
printf("Nespravny vstup.\n");
return EXIT_FAILURE;
}
while (scanf("%d",&znamky[count])!=EOF) //here I continue loading numbers, and char fight
{ //if the character after number is "," i load another
if (scanf("%c",&znaminko[0])==1) //number, if it is "}"I exit the while cycle
{ // else I exit the program
if (znaminko[0]==carka[0]) // if equals ","
{
printf("sdf\n");
count++;
if (count==n) // if I run out of memory I allocate more
{
n = n*2;
znamky = (int*) realloc (znamky, n * sizeof(int) + 4);
}
continue;
}
if (znaminko[0]==zavorka2[0]) // if equals "}"
count++;
printf("utikam\n");
break;
}
else
{
printf("Nespravny vstup\n");
return EXIT_FAILURE;
}
}
printf("%d ",count); //here I just print length of my array
printArray(znamky,count);
free(znamky);
return 0;
我的问题是:当我运行代码并给它正确的输入时,它工作得很好,但是如果我输入 {2 并按 enter 它认为,输入等于“}”并退出循环。 为什么会这样想? 上面当我将 char 与“{”进行比较时,它似乎工作正常......也欢迎任何有关如何改进代码的提示,我对编程仍然是新手,所以我看不到所有明显的错误。 非常感谢。
我的问题是:当我运行代码并给它正确的输入时,它工作得很好,但是如果我输入 {2 并按 enter 它认为,输入等于“}”并退出循环。 为什么会这样想? 在上面,当我将 char 与“{”进行比较时,它似乎工作正常......
也欢迎任何关于如何改进代码的提示,我还是编程新手,所以我看不到所有明显的错误。
但是如果我例如输入 {2 并按回车键它认为,输入等于“}”
问题在这里:
if (znaminko[0]==zavorka2[0]) // if equals "}"
count++;
printf("utikam\n");
break;
它应该是:
if (znaminko[0]==zavorka2[0]) // if equals "}"
{
count++;
printf("utikam\n");
break;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.