Читаю из файла, scanf, число с лидирующим нулем - C (СИ)
Формулировка задачи:
На VS 2010
Если число в файле input.txt c нулем в начале (например "010123"), то в n сохраняется совсем другое число(а не "10123"). Как решить эту проблему? Пока получилось только через считывание строки, а затем преобразование в число, можно ли без таких лишних телодвижений ?
#include<stdio.h> void main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); long n; scanf("%li", &n); printf("%li", n); }
Решение задачи: «Читаю из файла, scanf, число с лидирующим нулем»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main() { FILE* in = fopen("in.txt", "r"); FILE* out = fopen("out.txt", "w"); long n; while(1) { fscanf(in, "%ld", &n); if(feof(in)) break; fprintf(out, "%ld ", n); } fclose(in); fclose(out); exit(0); }
Объяснение кода листинга программы
- Подключение необходимых библиотек
- Открытие файлов in.txt и out.txt для чтения и записи соответственно
- Объявление переменной типа long для хранения числа
- Бесконечный цикл чтения чисел из файла in.txt
- Проверка на достижение конца файла с помощью функции feof
- Запись числа в файл out.txt
- Закрытие файлов in.txt и out.txt
- Выход из программы с помощью функции exit
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д