我的readfile方法有问题.我无法在文本文件中打印出数字值,但我的名字很好.
这就是我的文本文件中的所有内容:
Bob
10
12.00
Run Code Online (Sandbox Code Playgroud)
码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "iofunctions.h"
int readfile( struct account accarray[], int* numcust, char filename[])
{
/* variables */
FILE *inputFile;
char line[25];
char spaceEater[25];
char name[25]={"\0"};
int accountNum;
float money ;
inputFile = fopen("People_Info.txt", "r");
if(inputFile == NULL)
{
fprintf(stderr, "Sorry, I cannot open this file. Also it's empty.\n");
exit(1);
}
/*outer loop is to check if file is not null*/
while(!feof(inputFile))
{
/*while file has something*/
while(fscanf(inputFile,"%s %d %f", name,&accountNum,&money))
{
accarray->accountno = accountNum;
accarray->balance = money;
printf("name = %s number = %d balance = %f\n", name, &accountNum, &money);
}
}
fclose(inputFile);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这也是我的结构:
struct account
{
char name[25];
int accountno;
float balance;
};
Run Code Online (Sandbox Code Playgroud)
你不需要&的printf.
printf("name = %s number = %d balance = %f\n", name, &accountNum, &money);
Run Code Online (Sandbox Code Playgroud)
使用下面的print语句(通知'&'被删除.它仅用于读取值scanf)
printf("name = %s number = %d balance = %f\n", name, accountNum, money);
Run Code Online (Sandbox Code Playgroud)