Tag: 文件处理

从文件中的数据结构写入字符串

该程序应该由用户接收一些输入字符串,将它们保存在数据结构中,然后将所有内容打印到文件中。 对于exaple,如果我输入“test one”,它应该保存在inputs.one上,然后我应该在clients.txt上看到“test one”。 如果我输入“test one”,“test two”和“test three”,我应该看到在clients.txt上打印的那三个输入。 问题是,程序现在只执行一次scanf而不是三次,这就是为什么我添加了三个scanf而不是只进行一次scanf。 基本上,如果我输入“测试一个”它只会保存并打印测试一个,而不需要另外两个输入,我不知道为什么。 额外:我添加了这些fgets作为另一种尝试正确保存输入的方法,问题是fgets会将文件上的数据打印为 “测试一次测试两次测试三次” 而不是一条线上的所有东西,所以fgets也不会工作。 #include #include #include struct inputs { char one[30]; char two[30]; char three[30]; }; int main(void) { struct inputs inputs = {“”, “”, “”}; FILE *cfPtr; // cfPtr = clients.txt file pointer // fopen opens file. Exit program if unable to create file […]

我的图书馆目录C程序可以帮助我吗?

我需要使用BST和文件处理,但我坚持使用这个,因为displayCatalog函数似乎不起作用。 我想在将结构打印到文件之前先建立结构。 我该怎么做? #include #include #include #include #include typedef struct book catalog; FILE *fx,*fy; struct book{ char title[20]; char author[20]; int isbn[15]; char genre[10]; char publisher[20]; int year[5]; char synopsis[100]; catalog *left; catalog *right; }; catalog *root; void addBooks(); void removeBooks(); // void modify(); // void searchBook(); // void perTitle(); // void perAuthor(); // void […]

C文件处理中的运行时检查失败#2

运行时检查失败#2 – 变量’filename’周围的堆栈已损坏。 每当我尝试处理第一个内存位置时,我的代码都有效。 我可以正确处理.txt文件,我可以打印它。 然而,当我要求第二个内存位置时,程序崩溃了。 我试图增加文件名的大小,我也关闭了第一个文件,所以我很无能为力。 任何帮助都可以接受! 谢谢!! 这是输出的照片 这是我的代码: #include #define SIZE 100 //100 entries (100lines on a file) #define SENSORN 100 int main() { FILE *fptr; char filename[1000]; char dummy1[1];//dummy character that help me to erase what is the buffer when using gets() int numberOfSensors; int time[SENSORN][SIZE]; float powerConsumption[SENSORN][SIZE]; int sensor_num; int […]

如果文件已经打开,fopen会返回NULL指针

我假设如果文件已经打开,fopen返回NULL指针。 但是如果文件已经在“w”模式下打开,它看起来fopen不会返回NULL。 下面是我用来尝试这个的代码,我没有收到任何错误。 我尝试使用mingw32以及TDM-GCC-64编译器。 如果我没有弄错的话,如果文件已经打开,C ++会给出错误。 #include int main() { FILE *fp1, *fp2; fp1=fopen(“file1.txt”, “w”); fp2=fopen(“file1.txt”, “w”); if(fp2==NULL) { printf(“Error in opening file\n”); return(0); } // Edit: added following code to check the behavior if write operation // is performed simultaneously fputc(‘A’, fp1); fputc(‘M’, fp1); fputc(‘S’, fp1); fputc(‘B’, fp2); fclose(fp1); fclose(fp2); return(0); } 编辑:添加了额外的代码,将一些数据写入fp1和fp2并查看行为。 如果执行,file1.txt包含数据“BMS”并且似乎是正确的行为,并且fp1和fp2按预期独立移动。 […]

如何使用fread从文件中读取特定数据?

以下代码使用fwrite将student的数据写入文件并使用fread读取数据: struct record { char name[20]; int roll; float marks; }student; #include void main() { int i; FILE *fp; fp=fopen(“1.txt”,”wb”); //opening file in wb to write into file if(fp==NULL) //check if can be open { printf(“\nERROR IN OPENING FILE”); exit(1); } for(i=0;i<2;i++) { printf("ENTER NAME, ROLL_ NO AND MARKS OF STUDENT\n"); scanf("%s %d %f",student.name,&student.roll,&student.marks); fwrite(&student,sizeof(student),1,fp); […]

写入文件时,中间数据存储在fopen()和fclose()之间?

下面是一个小程序,它从用户获取信息并将其写入文件teacher.txt 。 我只使用一个array q2[30]来获取输入并使用fprintf()写入文件。 但是当我想进入更多的老师然后再次循环将执行但此时fclose()将不会出现所以数据将不会写入/保存(不知道)进入文件也是先前的q2值被删除/覆盖新的输入。 因此,在这种情况下,数据由fprintf()存储/写入。因为当我在fclose()之前手动打开teacher.txt ,没有任何新数据。 #include #include int main() { system(“cls”); int yoe; char cond[]=”yes”;char q2[30]; FILE *p; p = fopen(“teacher.txt”,”a+”); //opening file in reading + appending mode printf(“\nDo you want to add more Teacher ? (yes/no)\n”); gets(q2); fflush(stdin); if(!strcmp(q2,cond)) { do { printf(“\nEnter Teacher’s Name\n”); gets(q2); fprintf(p,”\n!%s!”,q2); printf(“Enter Teacher’s Qualifications\n”); fflush(stdin); gets(q2); […]

无法实现从文件中检索n个字节的(稳定)方法

我正在开发的库的目的之一是从文件中检索指定数量的字节,在这种特定情况下,我希望访问/ dev / random来检索基于熵的随机序列。 我对fread的主要问题是它会在等待更多熵时无限期挂起,这是不必要的。 我的下一个选择就是用feof包装fread来获取块中的字节,然后我至少可以提供完整的百分比以获得更好的体验,尽管我可以收集迭代1,2,3,4 ..的字节将是很难跟踪到完全相同的数量。 在C标准中是否有一种方法允许我正在寻找的东西,确切的数量和大块? 如果我要寻找超时,那么线程化数据请求是一个很好的选择吗?

如何从文本文件中删除?

大家好我有一个文本文件,称为dictionary.txt。 基本上我正在做两个选项的菜单,1。在字典中添加新单词和2.从字典中删除单词。 现在我设法做菜单并添加新单词。 但是,我无法从文件中删除。 我希望当用户输入例如“runners”时,在dictionary.txt中搜索该单词并将其删除。 告诉你我在学校尚未涉及的所有内容,但我在这里寻找一些想法,以便我可以继续完成任务。 我已经尝试了一些东西,但正如我已经告诉过你的那样,我还没有覆盖它,所以我不知道如何实际做到这一点。 我感谢所有的帮助。 以下是我的计划。

如何使用C只删除ASCII文本文件的最后一行?

我有一个文本文件。 如何使用C仅删除文件中的最后一行? 谢谢! 约翰。

从C中的文本文件中读取逗号分隔值

我是C编程的新手,这是作业的一部分。 我试图以以下格式读取逗号分隔的文本文件: [value1], [value2] 在C中并尝试将它们作为string和int参数传递给函数。 我已经尝试过使用sscanf()甚至使用fgetc()进行操作而没有太多帮助。 逗号之后的空格被certificate是一个问题。 例: 2001, 102 1314, 78 0410, 910 … 请帮帮我。 谢谢。