gpt4 book ai didi

c - 如何从文件中读取文本到数组

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:14 26 4
gpt4 key购买 nike

我想了解如何从文本中读取一些文件,然后将其输入数组以保存以供以后操作。我似乎无法理解。我已经尝试过结构和字符串数组,但我仍然无法掌握如何在 c 中实现它。我已经成功地将至少一行记录到数组中,但它会多次复制同一行。这是我的文本和代码的布局。

文本文件:

# A demonstration of some simple MIPS instructions

Loop: sll $t1, $s3, 2
add $t1, $t1, $s6
lw $t0, 0($t1)
bne $t0, $s5, Exit
addi $s3, $s3, 1
j Loop
Exit:

.c 文件:

int assem::readFile(FILE *file) //read file function for file to be read
{
//char String[200];
char lines[20];
char *ptr = lines;
const int MAX = 101;
char myString[MAX];
int i = 0;

while(fgets(&lines[i], 100, file) != NULL)
{
i++;
}

printf("%s\n", lines);

最佳答案

char * fgets ( char * str, int num, FILE * stream );

fgets()stream 中读取字符并将它们作为 C 字符串存储到 str 中,直到 (num-1) 字符已被读取或到达换行符 或到达文件末尾,以先发生者为准。

I have successfully been able record at least one line

因为 换行符 使 fgets 停止读取。请参见引用 here .

你可以使用

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

从文件中读取。

fread()stream 中读取 count 元素的数组,每个元素的大小为 size 字节,并将它们存储在指定的内存块中ptr.

我编写了以下函数来读取文件并将每个字符写入缓冲区,这可能对您有所帮助:

typedef  unsigned char BYTE;
void readFile(char *filename, BYTE* buffer) {
FILE * pFile;
long lSize;
size_t result;

pFile = fopen(filename, "rb");
if (pFile == NULL ) {
fputs("File error", stderr);
exit(1);
}

// obtain file size:
fseek(pFile, 0, SEEK_END);
lSize = ftell(pFile);
rewind(pFile);

// copy the file into the buffer:
result = fread(buffer, 1, lSize, pFile);
if (result != lSize) {
fputs("Reading error 2", stderr);
exit(3);
}

/* the whole file is now loaded in the memory buffer. */
fclose(pFile);
}

关于c - 如何从文件中读取文本到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31581993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com