Чтение строки из файла - C (СИ) (77086)
Формулировка задачи:
Доброго времени суток!
Помогите, пожалуйста, понять:
Почему после вывода поля Имя из файла, данные год рождения и зарплата выводятся с новой строки?
Сколько не смотрел в отладчике значения буфера fi - так и не нашел заветную \n...
И можно ли как-то вывести все в одну строку?
Спасибо.
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include <time.h> #define SP system("pause"); #define CP SetConsoleCP(1251); SetConsoleOutputCP(1251); #define NEWLINE putchar('\n'); #define konec system("pause"); return 0; int main() { struct person { char fio[100]; int birth; double salary; } rabotnik; char fi[100]; int i; double d; CP printf("Введите ФИО работника: "); gets(rabotnik.fio); printf("Введите дату раждения работника: "); scanf("%d", &rabotnik.birth); printf("Введите размер зарплаты работника: "); scanf("%lf", &rabotnik.salary); printf("Структура имеет размер - %d\n", sizeof(rabotnik)); printf("%s %d %.2lf\n", rabotnik.fio, rabotnik.birth, rabotnik.salary); printf("Вывод в файл...\n"); FILE *f; f = fopen("C:/test.txt", "wb"); if(f == NULL) {printf("Ошибка открытия файла на запись.\n"); return 1;} fwrite(rabotnik.fio, sizeof(char), sizeof(rabotnik.fio)/sizeof(char), f); fwrite(&rabotnik.birth, sizeof(int), 1, f); fwrite(&rabotnik.salary, sizeof(double), 1, f); fclose(f); printf("Чтение из файла...\n"); f = fopen("C:/test.txt", "rb"); if(f == NULL) {printf("Ошибка открытия файла на чтение.\n"); return 2;} fread(fi, sizeof(char), sizeof(rabotnik.fio)/sizeof(char), f); fread(&i, sizeof(int), 1, f); fread(&d, sizeof(double), 1, f); fclose(f); puts(fi); printf("%d ", i); printf("%.2lf", d); NEWLINE konec }
Решение задачи: «Чтение строки из файла»
textual
Листинг программы
printf("%s %d %.2lf", fi, i, d);
Объяснение кода листинга программы
В данном коде происходит следующее:
- printf - это функция вывода информации на экран.
- %s %d %.2lf - это формат вывода информации в функции printf. Здесь %s означает, что нужно вывести строку, %d - целое число, а %.2lf - число с плавающей точкой (типа double) с точностью до двух знаков после запятой.
- fi, i и d - это переменные, которые содержат в себе информацию для вывода. Таким образом, данный код выводит на экран строку, целое число и число с плавающей точкой, используя указанный формат вывода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д