我正在学习关于C的课程并且面临以下任务:1.加载XCode并启动一个新的C项目。如果您愿意,请从项目中删除 任何无关代码,以便您只需在 项目中运行主要功能所需的 。 2.提示用户输入两个值 - 第一个char 值'D'或'C'。第二个值应该是代表金额的浮动点数值。 3.由于每个值被输入记录它是 将其保存在以下格式的文本文件: d,250 \ n C,500 \ n 4.测试程序,并检查它创建 文本文件以确保它符合要求的格式。 5.编写第二个程序,假设起始余额为 $ 1,000.00,并输出已完成的分类帐和最终余额 ,并从您之前创建的 文本文件中添加或减去每个条目。应标记为'C' 的条目应添加到帐户中,并且标记为'D' 的条目应被扣除(扣除)。从文件读取和打印
我已经创建了该文件,现在进入步骤5,我相信我知道如何从文件中获取第一个字符来检查它是'c'还是'd',但在此之后,我不确定如何从同一行获取数值。我该怎么做呢?这是到目前为止我的代码(我不确定要放什么的if/else if语句):
FILE *pFile = fopen("Users/Justin/Desktop/Ledger.txt", "r");
float startingBalance = 1000.00;
char action;
if(pFile != NULL)
{
while(!(feof(pFile)))
{
fgets(action, 1, pFile);
if(action == 'D' || action == 'd')
{
}
else if(action == 'C' || action == 'c')
{
}
else
printf("IO Error: Problem with file");
}
}
return 0;
}
'与fgets(动作,1,pFile);'是错的,编译器是否给你一个警告? – 2014-10-07 10:47:10
检查['man strtol'](http://www.manpagez.com/man/3/strtol/)和['man fgets'](http://www.manpagez.com/man/3/fgets /)。 *不*尝试使用'fscanf()',因为该功能在输入/读取失败时可能无法正确使用。 – DevSolar 2014-10-07 10:48:27
请使用'fgets'的返回值来终止阅读,不要依赖'feof'。 (到达文件末尾时''fgets'返回'NULL') – 2014-10-07 10:50:32