I'm really new to programming, and after thinking hard about this for a week for a summer project, I'd really appreciate some help!
I'm trying to read in a long text file, which is just a long string (NB: not an actual programming string) of letters, and then put each letter into its place in the grid (the aim of the program is ultimately to solve a wordsearch) so far I've come up with the program below, which doesn't seem to be producing a grid, but rather just reprints the text file, preceded by the following:
{\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
The program that I've written is this:
#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]);
}
}
}
Thank you for any help you can offer
In Java, we can store the content of the file into an array either by reading the file using a scanner or bufferedReader or FileReader or by using readAllLines method.
To read a file into a list in Python, use the file. read() function to return the entire content of the file as a string and then use the str. split() function to split a text file into a list.
File> files = new ArrayList<>(); and add the files like: files. add(file);
Here's the beauty of C:
You can read the file in a single operation, and save yourself the looping:
Something like
fread(myArray, sizeof(myArray), myfile)
You should probably initialize the array to all zeros before you do this, though:
char myArray[26][26] = { 0 };
Or fill it with zeroes if you don't initialize it:
memset(myArray, 0, sizeof(myArray));
Also, you might want to print a newline ("\n") at the end of each outer loop in your printing section: otherwise the file contents will appear as one long, continuous string.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With