(C 语言)我可以在另一个 fopen 指令中使用一个 fopen 指令吗?
(C language ) Can i use an fopen instruction inside another fopen instruction?
好吧,我正在编写一个程序,我将一些员工姓名和职业保存在一个文件中,
我做了另一个文件,我把专业和薪水放在里面,
我想制作一个程序来写入每个员工的信息并将其添加到正确的工资中,
所以我去使用 fread 指令打开员工文件,然后在阅读员工信息时,
我做了另一个从工资文件中读取的 fread ,最后打印出该员工的正确工资,
等等,但它不起作用,它什么也没给我,只有没有工资的员工信息,谢谢你的帮助
代码:
include <stdio.h>
#include <stdlib.h>
typedef struct { int d,m,y; } dtype ;
typedef struct { char nom[10]; char prenom[10] ; char poste[20]; dtype date ; } LEM ;
typedef struct { char postes[20]; int salaire ; } LP ;
int main()
{
FILE * F;
F= fopen("C:/Users/ipoga/Desktop/BUNCH OF STUFF/TP ALGO/auto/employés.db","r" );
LEM R ;
FILE * E;
E= fopen("C:/Users/ipoga/Desktop/BUNCH OF STUFF/TP ALGO/auto/poste.db","r" );
LP O ;
fread(&R , sizeof(R),1,F);
while(!feof(F))
{
printf("nom : %s \t",R.nom);
printf("prenom : %s \t",R.prenom);
printf("poste : %s \t",R.poste);
printf("date de rec : %d/%d/%d \n",R.date.d , R.date.m ,R.date.y);
fread(&O , sizeof(O),1,E);
while(!feof(E))
{
if(O.postes == R.poste)
{
printf( "salaire : %d ",O.salaire);
}
fread(&O , sizeof(O),1,E);
}
fread(&R , sizeof(R),1,F);
}
}
O.postes
是一个 char[]
。对于 C 风格的字符串,不应使用 ==
进行比较(比较地址,而不是内容),而应使用 <string.h>
中的 strcmp()
。
好吧,我正在编写一个程序,我将一些员工姓名和职业保存在一个文件中, 我做了另一个文件,我把专业和薪水放在里面, 我想制作一个程序来写入每个员工的信息并将其添加到正确的工资中, 所以我去使用 fread 指令打开员工文件,然后在阅读员工信息时, 我做了另一个从工资文件中读取的 fread ,最后打印出该员工的正确工资, 等等,但它不起作用,它什么也没给我,只有没有工资的员工信息,谢谢你的帮助
代码:
include <stdio.h>
#include <stdlib.h>
typedef struct { int d,m,y; } dtype ;
typedef struct { char nom[10]; char prenom[10] ; char poste[20]; dtype date ; } LEM ;
typedef struct { char postes[20]; int salaire ; } LP ;
int main()
{
FILE * F;
F= fopen("C:/Users/ipoga/Desktop/BUNCH OF STUFF/TP ALGO/auto/employés.db","r" );
LEM R ;
FILE * E;
E= fopen("C:/Users/ipoga/Desktop/BUNCH OF STUFF/TP ALGO/auto/poste.db","r" );
LP O ;
fread(&R , sizeof(R),1,F);
while(!feof(F))
{
printf("nom : %s \t",R.nom);
printf("prenom : %s \t",R.prenom);
printf("poste : %s \t",R.poste);
printf("date de rec : %d/%d/%d \n",R.date.d , R.date.m ,R.date.y);
fread(&O , sizeof(O),1,E);
while(!feof(E))
{
if(O.postes == R.poste)
{
printf( "salaire : %d ",O.salaire);
}
fread(&O , sizeof(O),1,E);
}
fread(&R , sizeof(R),1,F);
}
}
O.postes
是一个 char[]
。对于 C 风格的字符串,不应使用 ==
进行比较(比较地址,而不是内容),而应使用 <string.h>
中的 strcmp()
。