所以我试图编写一个程序,允许你输入电路的电压和电阻,然后计算出电路的电流并将其写入.txt文件。这是代码:
void main()
{
float V=0;
float R=0;
float I=0;
printf("Enter your voltage value...\n");
scanf("%f&V", V);
printf("Enter your resistance value...\n");
scanf("%f&R", R);
I = V / R;
FILE *f = fopen("C:/Users/Joe/Desktop/file.txt", "w");
if (f == NULL)
{
printf("Error opening file!\n");
exit(1);
}
else
{
fprintf(f, "%f %f %f\n", V, R, I);
}
fclose(f);
}
但是,当我输入数据时,我收到以下错误:
"第一个project.exe中0x566B96AA(msvcr120d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000。"
有谁知道这意味着什么以及如何解决它?
谢谢你,乔。
答案 0 :(得分:2)
就像Raghu在评论中所说的那样,您需要将scanf("%f&V", V);
更改为scanf("%f", &V);
,而scanf("%f&R", R);
>更改为scanf("%f", &R);
答案 1 :(得分:1)
这里要提两件事。
scanf()
时的格式字符串应与确切输入匹配。所以,基本上。你的输入命令应该是
scanf("%f", &V);
和
scanf("%f", &R);
而不是
scanf("%f&R", R);
和
scanf("%f&V", V);
那就是说,
scanf()
和函数系列的返回值。void main()
不是很正确。你应该使用int main(void)
istead。答案 2 :(得分:0)
您应该在scanf
的第二个参数中传递变量的地址。
#include <stdio.h>
#include <stdlib.h>
int main()
{
float V=0;
float R=0;
float I=0;
printf("Enter your voltage value:");
scanf("%f",&V);
printf("\nEnter your resistance value:");
scanf("%f", &R);
I = V / R;
FILE *f = fopen("C:/Users/Joe/Desktop/file.txt", "w");
if (f == NULL)
{
printf("\nError opening file!\n");
exit(1);
}
else
{
fprintf(f, "%f %f %f\n", V, R, I);
}
fclose(f);
}