reading a string from a file

前端 未结 4 622
Happy的楠姐
Happy的楠姐 2021-01-06 04:03

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

相关标签:
4条回答
  • 2021-01-06 04:35

    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 讨论(0)
  • 2021-01-06 04:35
    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 */
    }
    
    0 讨论(0)
  • 2021-01-06 04:38

    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;
    }
    
    0 讨论(0)
  • 2021-01-06 04:47

    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).

    0 讨论(0)
提交回复
热议问题