将数组打印到文件仅打印第一个元素
Printing Array to file only prints first element
我目前正在尝试使用结构 "test" 来打印用户输入的 10 个随机事物的数组。程序编译并运行,但是在我输入最后的第 10 个项目后,.txt 文件只包含我 entered.I 尝试移动调用 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);
}
您正在循环中关闭您的文件,而不是再次打开它。
将 fclose() 调用移到循环之外。
顺便说一下,您不需要 while 循环。
我目前正在尝试使用结构 "test" 来打印用户输入的 10 个随机事物的数组。程序编译并运行,但是在我输入最后的第 10 个项目后,.txt 文件只包含我 entered.I 尝试移动调用 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);
}
您正在循环中关闭您的文件,而不是再次打开它。
将 fclose() 调用移到循环之外。
顺便说一下,您不需要 while 循环。