gpt4 book ai didi

c - 将文本文件读入数组

转载 作者:太空狗 更新时间:2023-10-29 15:00:49 26 4
gpt4 key购买 nike

我真的是编程新手,在为一个暑期项目认真思考了一个星期之后,我真的很感激能得到一些帮助!

我正在尝试读取一个长文本文件,它只是一个长字符串(注意:不是实际的编程字符串),然后将每个字母放入网格中的位置(程序的目的)最终是为了解决单词搜索)到目前为止,我已经想出了下面的程序,它似乎没有生成网格,而只是重印文本文件,前面有以下内容:

{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf510    
{\fonttbl\f0\fmodern\fcharset0 Courier;}
{\colortbl;\red255\green255\blue255;}
\paperw11905\paperh16837\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720

\f0\fs24 \cf0

我写的程序是这样的:

#include <stdio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <stdbool.h>

int main()
{
int i,j;
char myarray[26][26],x;
FILE *myfile;

for (j=0; j<26; j++) //initialise array elements all to zero
{
for (i=0; i<26; i++)
{
myarray[i][j]=0;
}
}

myfile=fopen("*redacted*","r");
if (myfile!=NULL) //check file actually opened
{
for (i=0; i<26; i++)
{
for(j=0; j<26; j++)
{
fscanf(myfile,"%c",&x); //read the values in
myarray[i][j]=x;
}
}
// data is now in the array called myarray
fclose(myfile);
}

else
{
printf("File not found");
}

for(i=0;i<26;i++)
{
for(j=0;j<26;j++)
{
printf("%c",myarray[i][j]);
}
}

}

感谢您提供的任何帮助

最佳答案

这是 C 的美妙之处:

您可以在一次操作中读取文件,并避免循环:

有点像

fread(myArray, sizeof(myArray), myfile)

不过,您可能应该在执行此操作之前将数组初始化为全零:

char myArray[26][26] = { 0 };

如果不初始化,则用零填充:

 memset(myArray, 0, sizeof(myArray));

此外,您可能希望在打印部分的每个外循环结束时打印一个换行符(“\n”):否则文件内容将显示为一个长的连续字符串。

关于c - 将文本文件读入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702996/

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