Перейти к содержимому

Как записать число в файл с

  • автор:

Как записать число в файл 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++ потоки, которые позволяют читать и записывать информацию из/в файл(а), относятся к особому виду переменных и называются объектами. Они находятся в библиотеке с заголовочным файлом &ltfstream>. Поэтому в начале программы подключаем эту библиотеку.

Поток чтения из файла имеет тип 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[])

Задания для самостоятельного выполнения:

  1. Создать текстовый файл и записать в него N (N>0) первых четных положительных чисел.
  2. Создать текстовый файл и записать в него первые степеней 2.
  3. Даны вещественный числа A и D. Создать файл и записать в него 10 первых членов арифметической прогрессии с начальным членом и разностью:
  1. Дано число N. Создать текстовый файл. В первой строчке файла записать число N. Если число N — отрицательное, то записать во второй строчке файла — квадрат числа N, в противном случае — сумму его цифр.
  2. Дана строка S. Создать текстовый файл и записать в него перевертыш строки S.
  3. Дано целое число N. Создать текстовый файл и записать в него первые .
  4. Дана строка S. Создать текстовый файл и записать в него каждый второй символ строки S.
  5. Дана строка S. Создать текстовый файл и записать в него все цифры из строки S.
  6. Создать текстовый файл и записать в него первые N нечетных положительных цифр.
  7. Ввести с клавиатуры N любых символов. Создать текстовый файл и записать в него коды введенных символов.
  8. Дана строка S. Создать текстовый файл и записать в него коды всех символов из строки S.
  9. Дана строка S. Создать текстовый файл и записать в него все восклицательные и вопросительные знаки из строки S.
  10. Создать текстовый файл и записать в него первые степеней 5.
  11. Создать текстовый файл и записать в него все целые числа, расположенные в интервале от a до b (a
  12. Дана строка S. Создать текстовый файл и записать в каждую строчку один символ из строки S по порядку (т.е. в первой строке файла — первый символ строки, во второй строке файла — второй символ строки и т.д.).

Вернуться к теории

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *