我目前正在尝试使用结构" 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);
}
答案 0 :(得分:0)
您正在循环中关闭文件,而不是再次打开它。
将fclose()调用移到循环外部。
顺便说一下,你不需要while循环。