在我的程序中,我必须打印一份包含来自2个文件的数据的通用期刊,'accounts.dat'和'transactions.dat'
accounts.dat有:
1000:first
2000:second
3000:hello
transactions.dat已
1000:first:d:1000.000000
2000:second:c:1500.000000
3000:hello:d:1000.000000
所以除了交易之外,基本上相同的数据还有2个。
当我检查扫描文件数据并将其输入到程序中的数组的读取功能时,它们就在那里但是当我调用generaljournal函数以特定格式打印它时,通用期刊不承认扫描到我的数组中的文件。
功能是:
void generaljournal(int accounts[MAX], int accounts3[MAX], char debcred[MAX], double amount[MAX], char accname[MAX][MAXSTRING], char transname[MAX][MAXSTRING], int *totalinput) {
int i = 0;
printf ("\n");
printf ("\t\t\tGeneral Journal\n");
printf ("Account Description Debit Credit\n");
printf ("------- ------------------------------ ---------- ----------\n");
for (i = 0; i < *totalinput; i++)
{
printf (" %d", accounts[i]);
if (debcred[i] == 'd')
{
printf (" %-35s", transname[i]);
printf ("%.2lf\n", amount[i]);
}
else if (debcred[i] == 'c')
{
printf (" %-47s", transname[i]);
printf ("%.2lf\n", amount[i]);
}
}
printf ("\n");
}
调用的所有数组都包含数组中的数据,但在调用常规日志函数时不会打印。我在我的主要调用read函数,但即使我把
read(accounts, accounts3, debcred, amount, accname, transname);
在我的一般日记功能中,它仍然没有做任何事情。 输出应该是什么样的像
Account Description Debit Credit
1000 first 1000.000
2000 second 1500.00
3000 hello 1000.00
相反,它只打印(帐户,描述,借记,贷记)的外壳,下面没有任何值。
当我从读取函数中的文件中扫描所有内容时,是否有人知道为什么它不接受数组中的值?如果需要更多信息我会提供。我的阅读功能是:
void read (int accounts[MAX], int accounts3[MAX], char debcred[MAX], double amount[MAX], char accname[MAX][MAXSTRING], char transname[MAX][MAXSTRING]) {
FILE *fp1 = NULL;
FILE *fp2 = NULL;
fp1 = fopen("accounts.dat", "r");
fp2 = fopen("transactions.dat", "r");
int h = 0;
if (fp1 != NULL) // READING THE FILE
{
while(fscanf(fp1, "%d", &accounts[h]) != EOF)
{
fgetc(fp1);
fscanf(fp1, "%30[^\n]", &accname[h]);
h++;
}
fclose(fp1);
}
else
printf ("Failed to open file\n");
if (fp2 != NULL) // READING THE FILE
{
int j = 0;
while(fscanf(fp2, "%d", &accounts3[j]) != EOF)
{
fgetc(fp2);
fscanf(fp2, "%30[^:]", &transname[j]);
fgetc(fp2);
fscanf(fp2, "%c", &debcred[j]);
fgetc(fp2);
fscanf(fp2, "%lf", &amount[j]);
j++;
}
fclose(fp2);
}
else
printf ("Failed to open file\n");
}
答案 0 :(得分:0)
*totalinput
的价值可能是0