C语言Printing Characters One Per Line - stdin

请问这个应该怎么做?要求是不要使用scanf 要用fgets来读取字符串。qiu大lao编程1下。

img

#include <stdio.h>


int main()
{
    char a[10];
    fgets(a, 6, stdin);
    for (int i = 0; i < 6; i++)
     {
         printf("%c\n",a[i]);
     }

    return 0;
}

#include <string.h>
#define N 4096
int main()
{
    char str[N];
    fgets(str,N,stdin);
    
    FILE *fp=fopen("data.txt","w);
    if(fp==NULL)
    {
        printf("文件打开错误!\n");
        return 1;
    }
    
    int len=0;
    while(1)
    {
        if(str[len]==0 || str[len]=='\n')
            break;
        else
            len++;
    }
    
    for(int i=0;i<len;i++)
    {
        fprintf(fp,"%c\n",str[i]);
    }    
    fclost(fp);
        
    return 0;
}