我正在學習關於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