file-handling 相关问题

文件处理是对常见操作的抽象,例如创建,打开,关闭,读取,更新,写入,比较和删除文件

如何使用 python 中的文件处理在文本文件中写入特定部分?

我在一个项目中工作,想在文本文件中打印多行。 这是我用于此目的的方法。 def 故事部分(文件路径、初始索引、最终索引): line_number = list(跑...

回答 5 投票 0

“r”模式可以读取二进制文件但“rb”不能?

我的老师给了我一个 .txt 文件,其中包含关于这样一个结构的二进制内容: 结构 NV { 内部错误; 字符码[30]; } 我已经使用 fread 的“rb”模式来读取数据但是它...

回答 0 投票 0

没有那个文件或目录

每次我尝试在 ide 中运行我的程序时,控制台中没有任何反应,它只是编译代码但不打印任何内容。我已经有一段时间遇到这个问题了,我已经尝试过某些......

回答 1 投票 0

在这个收入管理中我的编辑记录功能不起作用

当我尝试编辑记录时此程序将新记录写入文件而不是编辑现有记录。 除了编辑现有记录外,此代码工作正常。 #包括 #包括 当我尝试编辑记录时此程序将新记录写入文件而不是编辑现有记录。 除了编辑现有记录外,此代码工作正常。 #include <stdio.h> #include <stdlib.h> #include <string.h> struct taxpayer { char name[50]; int Pancard_Number; int Mobileno; float income; float tax; }; void add_record(FILE *file) { struct taxpayer record; printf("Enter name: "); scanf("%s", record.name); printf("Enter 5-digit Pancard_number: "); scanf("%d", &record.Pancard_Number); printf("Enter Mobileno: "); scanf("%d", &record.Mobileno); printf("Enter income: "); scanf("%f", &record.income); if (record.income <= 25000) { record.tax = 0; } else if (record.income > 25000 && record.income <= 50000) { record.tax = (record.income - 25000) * 0.05; } else if (record.income > 50000 && record.income <= 75000) { record.tax = 1250 + ((record.income - 50000) * 0.2); } else if (record.income > 75000 && record.income <= 100000) { record.tax = 5520 + ((record.income - 75000) * 0.3); } else { record.tax = 11250 + ((record.income - 100000) * 0.4); } // record.tax = record.income * 0.1; // 10% tax rate fwrite(&record, sizeof(struct taxpayer), 1, file); printf("Record added successfully.\n"); } void show_allrecord(FILE *file) { // rewind(file); struct taxpayer record; fseek(file, 0, SEEK_SET); printf("%-20s %-20s %-20s %-20s \n", "Name", "PancardNo.", "Income", "TaxPaid"); while (fread(&record, sizeof(struct taxpayer), 1, file)) { printf("%-20s %-19d Rs.%-19.2f Rs.%-17.2f \n", record.name, record.Pancard_Number, record.income, record.tax); } } void search_record(FILE *file) { // char name[50]; int search; struct taxpayer record; printf("Enter pancard number to search: "); scanf("%d", &search); fseek(file, 0, SEEK_SET); while (fread(&record, sizeof(struct taxpayer), 1, file)) { if (record.Pancard_Number == search) { printf("%-20s %-20s %-20s %-20s \n", "Name", "PancardNo.", "Income", "TaxPaid"); printf("%-20s %-19d Rs.%-19.2f Rs.%-17.2f \n", record.name, record.Pancard_Number, record.income, record.tax); return; } } printf("Record not found.\n"); } // void edit_record(FILE *file) // { // char name[50]; // struct taxpayer record; // printf("Enter name to edit: "); // scanf("%s", name); // fseek(file, 0, SEEK_SET); // while (fread(&record, sizeof(struct taxpayer), 1, file)) // { // if (strcmp(record.name, name) == 0) // { // printf("Enter new income: "); // scanf("%f", &record.income); // if (record.income <= 25000) // { // record.tax = 0; // } // else if (record.income > 25000 && record.income <= 50000) // { // record.tax = (record.income - 25000) * 0.05; // } // else if (record.income > 50000 && record.income <= 75000) // { // record.tax = 1250 + ((record.income - 50000) * 0.2); // } // else if (record.income > 75000 && record.income <= 100000) // { // record.tax = 5520 + ((record.income - 75000) * 0.3); // } // else // { // record.tax = 11250 + ((record.income - 100000) * 0.4); // } // // record.tax = record.income * 0.1; // fseek(file, -sizeof(struct taxpayer), SEEK_CUR); // fwrite(&record, sizeof(struct taxpayer), 1, file); // printf("Record updated successfully.\n"); // return; // } // } // printf("Record not found.\n"); // } FILE *delete_record(FILE *file) { char name[30]; printf("Enter the name of the taxpayer to delete: "); scanf("%s", name); fseek(file, 0, SEEK_SET); struct taxpayer record; int found = 0; // Create a temporary file FILE *temp = fopen("temp.txt", "wb"); // Read each record from the file and write to the temporary file except for the one to be deleted while (fread(&record, sizeof(record), 1, file) == 1) { if (strcmp(record.name, name) == 0) { found = 1; } else { fwrite(&record, sizeof(record), 1, temp); } } fclose(file); fclose(temp); if (found) { // Delete the original file and rename the temporary file to the original file name remove("taxpayers.txt"); rename("temp.txt", "taxpayers.txt"); printf("Taxpayer with name %s has been deleted.\n", name); } else { printf("Taxpayer with name %s not found.\n", name); remove("temp.txt"); } // Open the original file for appending file = fopen("taxpayers.txt", "ab+"); if (file == NULL) { printf("Error opening file.\n"); exit(1); } return file; } int main() { FILE *file = fopen("taxpayers.txt", "ab+"); if (file == NULL) { printf("Error opening file.\n"); exit(1); } int choice; do { printf("\n1. Add New Record\n"); printf("2. List All Tax Payer along with Income Tax to be paid\n"); printf("3. Search\n"); printf("4. Edit\n"); printf("5. Delete Record\n"); printf("6. Exit\n"); printf("Enter your choice: "); fflush(stdin); scanf("%d", &choice); switch (choice) { case 1: add_record(file); break; case 2: show_allrecord(file); break; case 3: search_record(file); break; case 4: edit_record(file); break; case 5: delete_record(file); break; case 6: printf("Exiting...\n"); break; default: printf("Invalid choice. Please try again.\n"); break; } } while (choice != 6); fclose(file); return 0; } 我想要的是它从文件更新现有记录。 它还要求用户输入您要更新收入的姓名。 我希望它根据 pancard 号码和更新记录请求 pancard 号码和匹配记录。

回答 0 投票 0

在这个收入管理中我的删除记录功能不起作用

在此代码中,我想从文件中删除用户的特定记录,但我无法这样做。 我使用这种方法来覆盖文件。首先,我制作了一个临时文件,其中我写了所有其他记录......

回答 1 投票 0

我对它如何使用错误行的数据感到非常惊讶

这是我项目的一些登录代码。该文件包含用户的用户名、密码、电子邮件、地址和电话号码 按照这个顺序。 代码读取文件并获取每一行数据并存储 i...

回答 1 投票 0

为什么 interpret_cast 运算符在 cpp 中被认为是危险的?有更好的方法吗?

我正在研究cpp中文件中的随机访问。我遇到了 reinterpret_cast 运算符。它允许您将指针从一种类型转换为另一种类型,即使这些类型之间没有任何关联。

回答 0 投票 0

应用程序崩溃时如何处理流对象

我有一个单例记录器类,它将用于将数据写入单个文件,我只是想知道在应用程序崩溃的情况下如何处理 ofstream 对象。 #ifndef LOG_ERROR_H_ #定义

回答 2 投票 0

我无法更新文本文件中的新数据

我是c编程语言的初学者,我尝试了很多次来解决这个问题。 这里的问题代码不会将文件中的数据更新为新数据,但代码不起作用。 我...

回答 1 投票 0

在C编程中无法在文本编辑器中调用数据

我用c编程编写代码,将数据写入文本文件并显示,但是当我调用该函数时,数据没有显示在文本编辑器中。 我想在打电话时看到数据

回答 1 投票 0

如何将一个有字典的文件读入字典的字典?

所以我有一个txt文件,其内容是这样的: 实验设置={ “1”:{ "文件名": "WT_L-1C.raw", “条件”:“

回答 1 投票 0

在 python 中的给定列表中查找字符串

我有这段代码,我打算输出列表中的每个项目,然后将错误数计算为密码< 6 and password > 10,然后输出计数: thislist = ["2021-07-22 16:24:42....

回答 3 投票 0

在目录中找不到文件[关闭]

您好,我正在尝试访问一个文件以在我的代码中打印行,但它给了我这个错误代码: ||===构建文件:“无项目”中的“无目标”(编译器:未知)===| C:\用户\用户\

回答 0 投票 0

根据文件内容将数据传递到另一个屏幕

当用户按下按钮时,我想从文件中读取数据。根据文件内容做出一些决定并传递一些数据(取决于文件内容到下一个屏幕)。 void _onButtonP...

回答 0 投票 0

读取文件时如何跳过导致错误的行?

我想逐行读取文件,以便在读取该行时跳过任何导致错误的行。 例如,如果我有一个包含以下文本的文件: 第 1 行 2号线 线ǵ 线...

回答 1 投票 0

在 python 中打开/关闭可选文件的干净方法?

我的代码: fh = 无 如果 args.optional_input_file_path 不是无: fh = open(args.optional_input_file_path) my_function(foo, bar, fh) 如果 args.optional_input_file_path 不是无: fh.close(...

回答 5 投票 0

UTF 8 文本文件 Raspi 错误,问题是什么?

问题:有时我们的项目没有检测到对象。用这个函数生成的文本文件变成UTF-8编码错误。也许我不是 python 专家,但我似乎无法追踪 ...

回答 0 投票 0

txt文件到达eof后如何重新设置光标位置,然后在不关闭文件重新打开的情况下再次读取

我试图一次又一次地从文件中读取,直到满足某些条件。但我遇到了麻烦。当光标位于行尾时,我尝试重置光标位置 seekg(ios::...

回答 0 投票 0

为什么在尝试使用 C++ 从文本文件中读取结构时,我会得到一个带有值的额外行?

我正在使用 C++,分别创建一个具有 name 和 age ie.string 和 int 数据成员的结构,并将结构的值存储在文本文件中,然后再次从文件中读取和

回答 0 投票 0

为什么读取文件时会出现 IndexError? [重复]

我正在尝试读取一个文件,获取它有多少行,并检查新行以查看它是否满足特定条件。 打开(路径,“r”)作为 g: readlen = len(g.readlines()) 而真实的: ...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.