Tag: 文件

是否建议使用fseek()计算文件大小的方法?

在C中,我们可以使用fseek()函数找到文件的大小。 喜欢, if (fseek(fp, 0L, SEEK_END) != 0) { // Handle repositioning error } 所以,我有一个问题,是否建议使用fseek()和ftell()计算文件大小的方法?

将位写入C中的文件

我有这个字符串:“101”我想把它写成一个文件,在C中,而不是文本:“101”,所以8位x char。 但直接使用字符串作为位:位“1”,位“0”和位“1”,因此文件将为3位。 有可能吗? 我在网上搜索过,我试过这样做: char c[25] = “101”; FILE *binFile = fopen(“binFile.bin”, “wb”); int x = atoi(c); fwrite(&x, sizeof(x), 1, binFile); 但最后,当我validation文件的字节时,Windows告诉我它是4bytes文件! 而不是3bits! 如果有可能,我怎么能这样做? 非常感谢。

如何将文件嵌入可执行文件?

我有两个问题,第一个已经解决了。 目前的问题 如果我嵌入了一个需要加载库的文件,例如jpeg图像或mp3音乐,我将需要使用该文件作为库的输入。 但是,每个库都是不同的,并使用一种方法来获取文件作为输入,输入可以是文件名或FILE *指针(来自libc的文件界面)。 我想知道如何访问带有名称的嵌入式文件。 如果我创建一个临时文件会有效率,还有另一种方法吗? 我可以将文件名映射到内存吗? 我的平台是Windows和Linux。 如果show_file(const char * name)是库中的函数,我将需要一个字符串来打开该文件。 我看过这些问题: 如何在内存中获取缓冲区的文件描述符? 从C中的文件描述符获取文件名 以下代码是我的解决方案。 这是一个好的解决方案吗? 它效率低下吗? # include # include extern char _binary_data_txt_start; extern const void* _binary_data_txt_size; const size_t len = (size_t)&_binary_data_txt_size; void show_file(const char* name){ FILE* file = fopen(name, “r”); if (file == NULL){ printf(“Error (show_file): %s\n”, name); return; } while […]

C / C ++:如何在B树中的文件中存储数据

在我看来,将数据作为文件存储在B树中的一种方法可以使用具有结构序列(数组)的二进制文件来有效地完成,每个结构代表一个节点。 因此,可以使用与使用数组创建链接列表类似的方法来连接各个节点。 但是,支持的问题是删除节点,因为在一个巨大的文件中只删除中间的几个字节是不可能的。 一种删除方法可以是跟踪“空”节点,直到达到阈值截止,然后制作另一个将丢弃空节点的文件。 但这很乏味。 从简单/效率的角度来看,是否有更好的方法来删除,甚至在文件中表示B树? TIA,-Sviiya

C snprintf指定用户主目录

我使用snprintf将格式化数据写入磁盘,但我有一个问题,如何将其保存到用户的主目录? snprintf(filename, sizeof(filename), “%s_%s.sho”, client, id);

从文件中读取文本,跳过任何空格或空行

你好。 我需要在字符之间读取几个没有空格或空行的文件。它们可以有不同的布局,例如1.txt,2.txt或3.txt: 1.TXT: t h i s f i l e 2.txt: l i k e t h a t 3.txt: something likethat 我怎么做 ? 我只是有以下代码: #include #include #include int main(){ char c ; FILE *fp; fp = fopen(“1.txt”,”r”); if(fp == NULL){ puts(“Open file failed\n”); exit(-1); } while(fscanf(fp,”%c\n”,&c)!=EOF){ /*do things with c var*/ } fclose(fp); […]

想要填充元数据结构

这里我有一个目录,其中包含多个文件。 我想在一个结构中填充这些文件的所有信息。 我有两个结构如下。 struct files { char *file_name; int file_size; }; typedef struct file_header { int file_count; struct files file[variable as per number of files]; } metadata; 我想制作一个包含有关这些文件的所有信息的标题。 就像我有3个文件,而不是我想在file_count = 3中使这个结构像这样,我怎么能分配第二个变量值? 并希望按文件存储文件名和文件大小。 我想要这样的文件结构 file_count = 3 file[0].file_name = “a.txt” file[0].file_size = 1024 file[1].file_name = “b.txt” file[1].file_size = 818 file[2].file_name = “c.txt” file[2].file_size = 452 我有关于文件名和文件大小的所有逻辑但是我如何在这个结构中填充这些东西。 […]

一次读取一个二进制文件1个字节

我试图一次读取一个C 1字节的二进制文件,并在搜索互联网几个小时后仍然无法检索除垃圾和/或seg故障之外的任何内容。 基本上,二进制文件的格式为256项长度,每个项目为1个字节(0到255之间的无符号整数)。 我试图使用fseek和fread跳转到二进制文件中的“索引”并检索该值。 我目前的代码: unsigned int buffer; int index = 3; // any index value size_t indexOffset = 256 * index; fseek(file, indexOffset, SEEK_SET); fread(&buffer, 256, 1, file); printf(“%d\n”, buffer); 现在这段代码给了我随机垃圾数和段错误。 有关如何使其正常工作的任何提示?

C – 如何读取文件的所有行

我不确定如何读取文件的所有行,atm它只读取文本文件中代码的第一行。 有人可以告诉我如何让它读取所有行吗? #include #include #include int main(int argc, char **argv) { FILE *fp; fp = fopen(“specification.txt”, “r”); char ** listofdetails; listofdetails = malloc(sizeof(char*)*6); listofdetails[0] = malloc(sizeof(char)*100); fgets(listofdetails[0], 100, fp); /*strcpy(listofdetails[0], “cars”);*/ printf(“%s \n”, listofdetails[0]); free(listofdetails[0]); free(listofdetails); fclose(fp); return 0; } 我的文字档案: 10X16 de4 dw9 ds8 g8,7 m3,4 h6,5 p2,2 10X16 de4 dw9 ds8 g8,7 m3,4 […]

C编程 – 文件 – fwrite

我有一个关于编程和文件的问题。 while(current!=NULL) { if(current->Id_Doctor!=’\0′) { current=current->next; id_doc=(current->Id_Doctor); } if(current->Id_Doctor==’\0′) { id_doc=id_doc+1; printf(“%d”, id_doc); break; } } fwrite(&id_doc, sizeof(char), 1, Archivo); 我不知道为什么,但它不是在名为’Archivo’的二进制文件上写id_doc的值…可能是什么问题? 我添加了一个id_doc的printf,并打印了值。我真的不知道 好的,inheritance人的完整代码(更多): struct Medico { int Id_Doctor; int Estado; char Nombre[60]; char Clave_Acceso[20]; char Especialidad[40]; struct Medico *next; }; void Dar_Alta_Med (int estado); void MenuPrincipal(char enta); int main(void) { char enta; MenuPrincipal(enta); } void […]