如何使用C读取文件并将文件内容分配给变量?
例如:program.txt
文件包含这样的值
r1 = 2r2 = 4r3 = 5r4 = 6
我想读取program.txt
文件并将r1,r2,r3,r4值分配给变量。
我尝试使用此示例程序,但它为fgetchar()
返回了太多参数。
#include <stdio.h>
int main()
{
int n;
char c;
FILE *fptr;
if ((fptr=fopen("E:\\program.txt","r"))==NULL){
printf("Error! opening file");
}
fscanf(fptr,"%d",&n);
fgetchar(fptr);
printf("Value of n=%d",n);
printf("Char is = %c", c);
fclose(fptr);
return 0;
}
最佳答案
问题是您要求fscanf
读取一个整数:fscanf(fptr, "%d", &n);
但是文件中的第一个字符是字母。因此fscanf找不到int,因此它失败并在那里停止。
解决方案是将您的分配写为每行这样的代码:
r1=1
r2=2
r3=3
然后您要求fscanf匹配行并代替要读取的数字以放置
%d
,因此它看起来像这样:fscanf(ftpr, "r%d=%d\n", &n, &var);
顺便说一句:
fgetchar
不存在,因此您的程序实际上无法编译,但是您可以使用:fgetc
将FILE作为参数并返回文件中的下一个字符:char c = fgetc(fptr);