C读取文本文件

时间:2012-03-20 20:36:36

标签: c

我做了很多阅读,很难找到一个简单的方法来做这件事。

我有一个给我的文本文件,我不知道大小并包含可能在多行上或不在多行上的字符串。 (即:dog cat mouse he went to the store.

我需要读取整个文件并以某种方式存储它,这样我就可以一次操作一个单词。我知道我需要使用freadfgetc或类似的东西。但是我无法读取整个文件。

1 个答案:

答案 0 :(得分:1)

使用fscanf:

#define DEFAULT_SIZE 25
#define MAX_WORD_LENGTH 25

FILE *filePtr = fopen("/path/to/my/file.txt", "r"); 
char **readStrings = malloc(sizeof(char *) * DEFAULT_SIZE);
int allocatedStringSize = DEFAULT_SIZE;

int index = -1;
do {
    if (index >= allocatedStringSize)
    {
        allocatedStringSize += DEFAULT_SIZE;
        readStrings = realloc(readStrings, sizeof(char *) * allocatedStringSize);
    }

    readStrings[++index] = calloc(MAX_WORD_LENGTH, sizeof(char));
    fscanf(filePtr, "%24s", readStrings[index]);
} while (!feof(filePtr));

fclose(filePtr);

请注意,此代码不会对文件或malloc进行错误检查,这取决于您。