, поэтому я пытаюсь прочитать файл с различными университетскими именами с ноутбуками и другой информацией в c, а затем распечатать их на экране с расчетной стоимостью / ГБ оперативной памяти, но у меня возникают проблемы с проверкой EOF. Я попытался fscanf, но это убрало первый символ моей первой строки, и теперь я пытаюсь fgets, но это убирает первую строку файла. Мне интересно, как я могу избежать любого из них, все еще проверяя EOF. Спасибо.
#include <stdio.h>
int main() {
FILE *text; //Defining file pointer
char end[100]; //EOF check
//Headers
char name[20] = "University";
char lap[20] = "Laptop";
char ram_[20] = "Ram";
char gb_[20] = "Storage";
char price_[20] = "Price";
char costram_[20] = "Cost/Gb of ram";
int ram;
int gb;
float price;
float costram; //Cost/gb of ram
printf("\n%10s %12s %8s %10s %12s %16s\n", name, lap, ram_, gb_, price_, costram_);
text = fopen("text.txt", "r");
//If file cannot be opened
if (text == NULL){
printf("Error opening file");
}
//File is opened
else{
//fscanf took away the first letter in my first string since it scanned it so I used fgets to compare with NULL instead
while (fgets(end, 100, text) != NULL){
fscanf(text, "%s%s%d%d%f", name, lap, &ram, &gb, &price);
costram = price / ram;
printf("\n%10s %12s %6dgb %8dgb %12.2f %12.2f", name, lap, ram, gb, price, costram);
}
}
return 0;
}
Повторная ссылка: https://repl.it/@Michael2022 / Назначение оборудования