arrays - 使用C将二维数组导出到新文件中
问题描述
我一直在处理一项任务,该任务要求我将包含名称列表的文件读入二维数组,然后将该数组写入新文件。我能够将文件读入一个数组,并且能够创建一个新文件并导出名称,但不幸的是,它没有将名称写入新行,而只是将名称相互覆盖。
例如,我在 names.txt 中有以下名称:
肖恩乔史蒂夫塔卡凯西
但是,在新文件中只显示 Kathy。我将如何确保数组中的每个名称都是数组打印在新行上?
这是我到目前为止的代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
FILE* fp;
FILE* fp2;
char nameArray[20][120], str[100];
int i = 0, j = 0;
char name[20];
printf("Please enter a file name: ");
scanf("%s", &name);
fp = fopen(name, "r");
while (fscanf(fp, "%s", str) != EOF)
{
strcpy(nameArray[i], str);
i++;
}
for (i = 0; i < 5; i++)
{
fp2 = fopen("newNames.txt", "wb");
fwrite(nameArray[i], sizeof(char), 5, fp2);
}
size_t n;
for (n = 0; n < 5; n++) {
printf("%s\n", nameArray[n]);
}
fclose(fp);
}
解决方案
您正在 for 循环内重新打开文件(甚至没有关闭它)...移动该行:
fp2 = fopen("newNames.txt", "wb");
for (i = 0; i < 5; i++)
{
fwrite(nameArray[i], sizeof(char), 5, fp2);
}
完成后不要忘记关闭它:fclose(fp2);
推荐阅读
- java - Spring @Autowired 在某些类中不起作用
- php - 我有从 0 到 99 的 wav 文件,在连接时使它们听起来不错的最佳逻辑是什么?
- python - 使用 os.system 打开记事本文件会出现错误“系统找不到指定的路径”
- python - Python 3 中的 urllib 没有给我变音
- intellij-idea - IntelliJ 社区版中的 Jinja 格式
- javascript - 单击电影卡时无法打开电影详细信息
- google-cloud-platform - GCP 混合连接:从客户路由器 ping 到 VPC
- html5-video - 在资源受限的环境中禁用背景视频
- sql - 需要使用 SQL 按类别中的前 25 个国家/地区列出国家/地区
- excel - 在 Excel 中添加时间码