扫描char并在C中打印时出现问题

时间:2018-11-10 20:01:16

标签: c visual-studio

(我正在使用VS社区,这就是为什么我使用“ scanf_s”的原因) 我正在尝试完成一项任务,但遇到一个无论我做什么都无法解决的问题。 我的代码是=

char char_array[3];


inputchar_1D(char_array, 3);
outputchar_1D(char_array, 3);

功能是:

void inputchar_1D(char arr[], int size) 
{
    printf("\n\ninput : \n");
    for (int i = 0; i < size; i++) 
    {
        printf("\nEnter your character (%d) : ", (i));
        scanf_s("%c", &arr[i]);

    }
}

void outputchar_1D(char arr[], int size) 
{
    printf("output : \n");
    for (int i = 0; i < size; i++) 
    {
        printf("%c...\t", arr[i]);

    }
}

输出:

input :



Enter your character (0) :
Enter your character (1) : s

Enter your character (2) : output :

...     s...
...

如您所见,它正在跳过第一个scanf并转到第二个。在那里,它要求我写一个字符,一旦我这样做,它将跳过第三个字符,转到第二个函数。在那里,它将我输入的第二个字符打印为第一个字符。第二个字符为空,而第三个字符出于某种原因是“╠”怪异的符号。 问题:

  1. 为什么跳过scanf
  2. 为什么我在arr [1]处输入的字符被打印为arr [0]
  3. 即使没有\ n,为什么也会传递给新行

谢谢您抽出宝贵的时间来帮助我...

0 个答案:

没有答案