打印阵列到文件只打印第一个元素

时间:2015-02-13 20:06:49

标签: c arrays struct printf

我目前正在尝试使用结构" test"来打印用户输入的10个随机内容的数组。程序编译并运行,但是在我输入最后的第10个项目之后,.txt文件只包含我输入的第一个元素。我已经尝试移动调用fprintf函数的区域,但是我的尝试无济于事。对此的任何意见都将非常感激。

继续只打印第一个元素(即我先输入的内容)

#include <stdio.h>
#include <ncurses.h>
//EDIT NEW CODE UPDATED, BUT IT STILL ONLY PRINTS THE FIRST ELEMENT\\
typedef struct test
{

    char test[10];
}test;

int main(void)
{
  initscr();
  cbreak();
  noecho();

  testFunction();
}

int testFunction()
{
    int i;
    test inputString[10];

    FILE *f = fopen("file.txt", "w");
    for(i=0;i<10;i++)
    {
        mvprintw(50,50,"Please enter a 10 things");
        getstr(inputString[i].test);
        fprintf(f, "%s\n", inputString[i].test);

    }
       fclose(f);


}

1 个答案:

答案 0 :(得分:0)

您正在循环中关闭文件,而不是再次打开它。

将fclose()调用移到循环外部。

顺便说一下,你不需要while循环。