gpt4 book ai didi

c - 在 C 中将文本导出到 .txt 文件

转载 作者:行者123 更新时间:2023-11-30 17:08:20 24 4
gpt4 key购买 nike

我的程序没有将任何内容导出到 .txt 文件;实际上,我什至无法以这种形式编译它。

#include <stdio.h>

typedef struct /*We define structure type to save memory
( im not sure about this!!!) */
{
char name[20];
int num;
} cont;

void input(cont a[],int n) /*With this function i enter data in main program.*/
{
int i;
for(i=0;i<n;i++)
{
printf("Insert name:");
scanf("%s",&a[i].name);
printf("Insert number:");
scanf("%d",&a[i].num);
printf("\n\n\n");
}
}

void export(cont a[],int n) /*Export data that is entered in main program to text file
output.txt that is in same folder as program*/
{
FILE *text;
int i;
text=fopen("output.txt","w");
fprintf(text,"Name:%s\nNumber:%d\n",a[i].name,a[i].num);
fclose(text);
}

void printinprog(cont a[],int n) /*This just prints data in program so we can check
that program works correctly.*/
{
int i;
for(i=0;i<n;i++)
{
printf("Name:%s Number:%d",a[i].name,a[i].num);
printf("\n\n");
}
}
main()
{
cont per[20];
int c;
printf("Enter number of contacts:");
scanf("%d",&c);
input(per,c);
export(per,c);
system("pause");
}

所以当我将导出函数的主要部分移动到 printinprog 函数时,它看起来像这样:

#include <stdio.h>

typedef struct /*We define structure type to save memory
( im not sure about this!!!) */
{
char name[20];
int num;
} cont;

void input(cont a[],int n) /*With this function i enter data in main program.*/
{
int i;
for(i=0;i<n;i++)
{
printf("Insert name:");
scanf("%s",&a[i].name);
printf("Insert number:");
scanf("%d",&a[i].num);
printf("\n\n\n");
}
}





void printinprog(cont a[],int n) /*This just prints data in program so we can check
that program works correctly.*/
{
int i;
for(i=0;i<n;i++)
{
printf("Name:%s Number:%d",a[i].name,a[i].num);
printf("\n\n");
}
FILE *text;
text=fopen("output.txt","w");
fprintf(text,"Name:%s\nNumber:%d\n",a[i].name,a[i].num);
fclose(text);
}


main()
{
cont per[20];
int c;
printf("Enter number of contacts:");
scanf("%d",&c);
input(per,c);
printinprog(per,c);
system("pause");
}

现在程序可以运行,但我在 .txt 文件中得到错误的数据,如下所示。

所以我很确定问题出在 typedef 结构中,实际上我认为数据类型有问题,因为我将它定义为 cont 并且实际上并不存在,所以程序不会将其视为文本数据,并且会给出错误的数据.txt 文件。

最佳答案

问题是

 FILE *text;
text=fopen("output.txt","w");
fprintf(text,"Name:%s\nNumber:%d\n",a[i].name,a[i].num);
fclose(text);

应该在循环内部,而它在循环外部。发生的情况是它使用 i (n) 的最后一个值,并且本质上是从随机内存位置打印......

关于c - 在 C 中将文本导出到 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com