Как записать число в файл java
Для записи числа в файл можно вызвать метод append() из объекта класса Filewriter , передать в него наше число, попутно сконвертировав его в строку.
int number = 1; // Целое число // Создаем объект класса для записи в файл, передаем название файла, // указываем, что данные будут дозаписываться в конец // Используем конструкцию try-with-resources для автоматического закрытия потока try (FileWriter fileWriter = new FileWriter("example.txt", true)) fileWriter.append(String.valueOf(1)); // Записываем число в файл, конвертируя число в строку fileWriter.flush(); // Очищаем буфер потока > // Содержимое файла: 1
Запись числа в файл посредством файловых переменных
Написал мини функцию, которая записывает определенное число в файл, записывать оно записывает, но в файле в итоге не числа, а иероглифы, либо буквы ,или числа, но не те, что ввел пользователь (например, при вводе числа 12345, программа закинет в файл число 90). Что не так?
#define _CRT_SECURE_NO_WARNINGS #include #include using namespace std; int main() < FILE *f; f = fopen("Test.txt","wt"); int i; cin >> i; fwrite(&i,sizeof(int),1,f); fclose(f); return 0; >
Отслеживать
задан 16 окт 2017 в 10:49
IWProgrammer IWProgrammer
841 1 1 золотой знак 15 15 серебряных знаков 30 30 бронзовых знаков
В С++ лучше использовать fstream для работы с файлами
16 окт 2017 в 11:21
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Вы пишете в файл бинарное представление числа (те самые иероглифы). Если хотите записать текстовое представление, делайте это, например, так:
fprintf(f, "%d", i);
Отслеживать
ответ дан 16 окт 2017 в 10:52
Voidificator Voidificator
1,973 7 7 серебряных знаков 7 7 бронзовых знаков
а как тогда можно будет узнать размер открытого файла? Допустим, мне надо контролировать количество введенных чисел (чтобы файл не стал слишком большим), но именно в текстовый файл, а бинарном я бы использовал seekp(), а как поступить с текстовым?
16 окт 2017 в 11:04
@IWProgrammer, для определения текущего положения файлового указателя можно использовать ftell(f); Вообще говоря, файловый указатель не всегда бывает в конце, но в данном случае, если вы только пишете, он указывает на конец файла.
16 окт 2017 в 11:12
Какой seekp при работе с FILE ? ftell
16 окт 2017 в 18:42
Вы просто путаете текстовый и бинарный формат. То, что пишете вы — бинарный формат; каждое число будет занимать по sizeof(int) байт, но записанное в том виде, как хранится в памяти компьютера. Только при этом нельзя использовать текстовый режим, как у вас — «wt» — только бинарный.
А если хотите в виде текста — пишите примерно как
fprintf("%d",i);
Но не лучше ли использовать родные потоки C++? ofstream ? Зачем эта смесь французского с нижегородским 🙂 — С и С++?
Работа с файлами
Для того чтобы при проверке написанной программы не вводить каждый раз какой нибудь вектор, или здоровенную матрицу, следует сначала создать файл и записать в него все данные. Создается он очень просто с помощью редактора Блокнот и сохраняется в любом месте либо в формате .txt, либо .cpp. В самой программе нужно написать функцию для чтения вектора/матрицы из файла. Затем после запуска программы мы просто вводим полный путь к нашему файлу. Также можно написать функцию для записи результатов вычислений в файл.
Рассмотрим как это реализуется.
В языке C++ потоки, которые позволяют читать и записывать информацию из/в файл(а), относятся к особому виду переменных и называются объектами. Они находятся в библиотеке с заголовочным файлом <fstream>. Поэтому в начале программы подключаем эту библиотеку.
Поток чтения из файла имеет тип ifstream , а поток записи в файл ofstream.
Короче, рассмотрим чтение и запись в файл на примере.
#include <iostream> #include <fstream> #include <cstdlib> #include <cstddef> #include <cmath> using namespace std; //Прототип функции для чтения числа из файла: double inputf(ifstream &f,char s[40]); //Прототип функции для записи числа в файл: void outputf(ofstream &f,double a, char s[40]); void main() //Русификация double a,b;//Объявляем переменные ifstream f;//Объявляем поток чтения из файла ofstream f1;//Объявляем поток записи в файл char str[40];//Строковая переменная (для пути к файлу) cout<<"\n Ввести имя файла для чтения числа A: \n"; cin>>str; a=inputf(f,str);//Обращаемся к функции чтения числа из файла cout<<"\n Прочитанное из файла число A #008000">//Возводим в квадрат число A cout<<"\n b="<<b; cout<<"\n Ввести имя файла для записи числа A: \n"; cin>>str; outputf(f1,b,str);//Обращаемся к функции записи числа в файл cout<<endl; > double inputf(ifstream &f,char s[40])//Функция для чтения числа из файла //Открываем файл //Проверка успешности открытия файла: if (f.fail()) f>>a;//Читаем переменную из файла f.close();//Закрываем файл return a; > void outputf(ofstream &f,double a, char s[40])//Функция для записи //числа в файл //Открываем файл //Проверка успешности открытия файла: if (f.fail()) f<<a;//записываем переменную в файл f.close();//Закрываем файл >
Эта простая программа, читает из файла число и возводит его в квадрат. Затем происходит запись результата вычислений в файл.
И что же мы видим в результате:

Также можно написать функции для чтения и записи из/в файл(а) для векторов и для матриц.
Разработчик сайта: Филатов Максим
Запись информации в файл
Задача. Создать текстовый файл и записать в него n чисел, введенных с клавиатуры.
Так как необходимо записывать информацию в файл, то описываем переменную f типа ofstream. Открываем файл. Считываем значение переменной n, в которой хранится количество чисел. Вводить числа следует в цикле. Сначала считываем с клавиатуры очередное число, а потом записываем его в файл. После записи всех n чисел, необходимо закрыть файл.
Важно: файл 2.txt создастся программно, предварительно его создавать на диске D не нужно!
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
Задания для самостоятельного выполнения:
- Создать текстовый файл и записать в него N (N>0) первых четных положительных чисел.
- Создать текстовый файл и записать в него первые степеней 2.
- Даны вещественный числа A и D. Создать файл и записать в него 10 первых членов арифметической прогрессии с начальным членом и разностью:

- Дано число N. Создать текстовый файл. В первой строчке файла записать число N. Если число N — отрицательное, то записать во второй строчке файла — квадрат числа N, в противном случае — сумму его цифр.
- Дана строка S. Создать текстовый файл и записать в него перевертыш строки S.
- Дано целое число N. Создать текстовый файл и записать в него первые .
- Дана строка S. Создать текстовый файл и записать в него каждый второй символ строки S.
- Дана строка S. Создать текстовый файл и записать в него все цифры из строки S.
- Создать текстовый файл и записать в него первые N нечетных положительных цифр.
- Ввести с клавиатуры N любых символов. Создать текстовый файл и записать в него коды введенных символов.
- Дана строка S. Создать текстовый файл и записать в него коды всех символов из строки S.
- Дана строка S. Создать текстовый файл и записать в него все восклицательные и вопросительные знаки из строки S.
- Создать текстовый файл и записать в него первые
степеней 5. - Создать текстовый файл и записать в него все целые числа, расположенные в интервале от a до b (a
- Дана строка S. Создать текстовый файл и записать в каждую строчку один символ из строки S по порядку (т.е. в первой строке файла — первый символ строки, во второй строке файла — второй символ строки и т.д.).
Вернуться к теории