Reading a String from a File

Reading a String from a File

I have one text file. I have to read one string from the text file. I am using c code. can any body help ?

2

4 Answers

Use fgets to read string from files in C.

Something like:

#include <stdio.h>

#define BUZZ_SIZE 1024

int main(int argc, char **argv)
{
    char buff[BUZZ_SIZE];
    FILE *f = fopen("f.txt", "r");
    fgets(buff, BUZZ_SIZE, f);
    printf("String read: %s\n", buff);
    fclose(f);
    return 0;
}

Security checks avoided for simplicity.

0
void read_file(char string[60])
{
  FILE *fp;
  char filename[20];
  printf("File to open: \n", &filename );
  gets(filename);
  fp = fopen(filename, "r");  /* open file for input */

  if (fp)  /* If no error occurred while opening file */
  {           /* input the data from the file. */
    fgets(string, 60, fp); /* read the name from the file */
    string[strlen(string)] = '\0';
    printf("The name read from the file is %s.\n", string );
  }
  else          /* If error occurred, display message. */
  {
    printf("An error occurred while opening the file.\n");
  }
  fclose(fp);  /* close the input file */
}
1

This should work, it will read a whole line (it's not quite clear what you mean by "string"):

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

int read_line(FILE *in, char *buffer, size_t max)
{
  return fgets(buffer, max, in) == buffer;
}

int main(void)
{
  FILE *in;
  if((in = fopen("foo.txt", "rt")) != NULL)
  {
    char line[256];

    if(read_line(in, line, sizeof line))
      printf("read '%s' OK", line);
    else
      printf("read error\n");
    fclose(in);
  }
  return EXIT_SUCCESS;
}

The return value is 1 if all went well, 0 on error.

Since this uses a plain fgets(), it will retain the '\n' line feed at the end of the line (if present).

2

This is a Simple way to get the string from file.

#include<stdio.h>
#include<stdlib.h>
#define SIZE 2048
int main(){
char read_el[SIZE];
FILE *fp=fopen("Sample.txt", "r");

if(fp == NULL){
    printf("File Opening Error!!");

}
while (fgets(read_el, SIZE, fp) != NULL)
    printf(" %s ", read_el);
fclose(fp);
return 0;
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller
Author

David Miller

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.