从文件中读取字符串

use*_*761 3 c

我有一个文本文件.我必须从文本文件中读取一个字符串.我正在使用c代码.任何身体可以帮助吗?

Pab*_*ruz 19

用于fgetsC中的文件中读取字符串.

就像是:

#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;
}
Run Code Online (Sandbox Code Playgroud)

为简单起见避免了安全检查


unw*_*ind 5

这应该可行,它将读取整行(不太清楚“字符串”的含义):

#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;
}
Run Code Online (Sandbox Code Playgroud)

如果一切顺利则返回值为 1,如果出错则返回值为 0。

由于它使用普通的 fgets(),因此它将保留行末尾的 '\n' 换行符(如果存在)。

  • 你在问题中没有这么说。 (3认同)
  • @user556761 在这里,您想要接受人们对您众多问题的回答,提出更清晰的问题,并做一些您自己的工作。 (2认同)

She*_*bin 5

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 */
}
Run Code Online (Sandbox Code Playgroud)