【发布时间】:2020-01-22 01:57:56
【问题描述】:
这是我的代码的一部分。它有 0 个错误和 0 个警告,但它不起作用。这是完全正确的。但它不起作用。
#include<stdio.h>
struct details{
char empName;
int age;
float salary;
}det1;
void main(){
printf("Please enter a name : ");
scanf("%s",&det1.empName);
printf("Please enter the age : ");
scanf("%d",&det1.age);
printf("Please enter the salary : ");
scanf("%f",&det1.salary);
FILE *p;
p = fopen("employee.txt","w");
fprintf(p,"%s %d %0.2f",det1.empName,det1.age,det1.salary);
fclose(p);
}
【问题讨论】:
-
代码不正确也能正常工作也是同理。:)
-
此语句 scanf("%s",&det1.empName);产生未定义的行为。:)
-
你真的没有得到任何警告吗?您是否告诉编译器生成它们? (
-Wall -Wextra用于 gcc 和 clang) -
@Saumya Bhandari 而不是一个字符 char empName;你应该声明一个字符数组。
-
我可以在那里发现几个问题,任何编译器都会至少给你警告,所以我不相信你的“它有 0 个错误和 0 个警告”的说法。
标签: c