【发布时间】:2020-05-05 16:06:26
【问题描述】:
我需要编写一个 C 程序来从一个文件中获取数据并将其写入另一个文件,而不使用用户定义的函数。我的要求是:
- 按名称搜索客户详细信息。
- 将交易数据(支付金额)存储在另一个文本文件中。
我编写了按名称搜索的代码。但它不起作用,
#include <stdio.h>
#include <stdlib.h>
int main () {
char name[10], nic[10], mobile[10];
char fname[10], fnic[10], fmobile[10];
char choice;
int amount;
FILE *cfptr;
printf("Enter search type - \n 1. NAME \n 2. NIC \n 3.MOBILE \n ----> ");
scanf("%c", &choice);
printf("Enter search text : ");
scanf("%s", &name);
cfptr = fopen ("customer.dat", "r");
while (!feof(cfptr)){
fscanf(cfptr, "%s %s %s", fname, fnic, fmobile);
printf("Read Name |%s|\n", fname );
printf("Read NIC |%s|\n", fnic );
printf("Read Mobile |%s|\n", fmobile );
}
fclose(cfptr);
scanf("%d", &amount);
return(0);
}
customer.dat 文件
Shan 100012 200202
Marsh 121213 667675
Kim 126573 663412
此代码不完整,因为我无法过滤单个名称分配
if(name == fname)
现在
赋值给数组类型错误的表达式
谁能完成我的代码以搜索并保存到另一个文件,以便我可以进行金额计算部分?
【问题讨论】:
-
if(choice = 1)有什么奇怪的吗? -
while (!feof(cfptr))don't 这样做。 -
@user12986714 这段时间我应该使用什么?我还删除了 if 子句
-
您可能应该使用
while (fscanf(…) == 3)来检查您是否返回了三个值。 -
嗯,看起来你定义了
main()——这不是系统提供的功能。是的,我在挑剔,但“不要使用函数”是一个愚蠢的规则。即使是老师强加的,这仍然是一个愚蠢的规则。正确使用函数是学习用 C 编写代码的核心。如果不使用系统提供的和用户定义的函数,就无法用 C 编写好代码。