Чтение и запись в текстовый файл на C++
В этом уроке мы узнаем, как читать и записывать текстовые файлы на C++. В обоих случаях всегда проверяйте, существует ли файл после объявления потока данных для чтения/записи:
ifstream myFlux("C:/test.txt");
if(myFlow){
...
}
else{
сообщение, указывающее на то, что файл не существует
}
#include < iostream>
ifstream myFlux("C:/test.txt");
if(myFlow){
...
}
else{
сообщение, указывающее на то, что файл не существует
}
Запись в файл на C++
Запись осуществляется путем создания потока ofstream, который принимает имя файла в качестве параметра. Этот поток будет играть свою роль. Посредник между компилятор и файл. ОператорИмяПотока< < » «Напиши что-нибудь» < < endl; пишет предложение "напишите что-нибудь" в файле test.txt. endl делает перенос строки.
#include < iostream>
#include < фстрим>
#include < строка>
#include < стрим>
использование пространства имен std;
void write(int T[])
{
string const имя_файла("C:/test.txt");
ofstream myStream(nomFichier.c_str());
if(myFlow)
{
строка строка;
for(int i = 0 ; i < 10 ; i++)
string += convertInt(T[i])+" ";
myFeed < < Цепной < < endl;
}
else
Стоимость < < "Не удается открыть файл." < < endl;
}
//Преобразуем целое число в строку
string convertInt(int number)
{
Stringstream SS; СС < < число; вернуться ss.str();
}
//Генерируем aletory number
//Генерируем aletory number
int rand(int nb)
{
возвращает rand()%nb;
}
int main()
{
int T1[10]={1,2,3,4,5,6,7,8,9,10};
письмо(Т1);
play();
srand(time(NULL));
for(int i=0; i< 5; i++)
printf("%d \n",rand(50));
system("pause");
}
Чтение файла в C++
В C++ вы можете читать тремя способами:
- Строка за строкой: Курсор проигрывателя прочитает всю строку и перейдет к следующей с помощью метода getline( поток ifstream, строковая строка).
- Слово за словом: с помощью оператора myFlow > > слово; Слово – это стринги. Слова разделяются пробелами.
- символ за символом: с помощью метода get(char c).
Пример:
void reading()
{
ifstream myFlux("C:/test.txt");
if(myFlow)
{
струнная линия;
printf("построчно\n");
while(getline(myFlow,line))
Стоимость< < линия< < endl;
printf("слово за словом\n");
myFlow.clear();
инициализируем ползунок zero
инициализируем ползунок zero
myFlux.seekg(0, ios::beg);
строковое слово;
while(myFlow > > word)
Стоимость< < мот< < endl;
printf("символ за символом\n");
myFlow.clear();
myFlux.seekg(0, ios::beg);
Танк c;
while(myFlux.get(c))
{
Стоимость< < С< < endl;
int position=myFlow.tellg();
}
}
else
Стоимость< < "Не удается открыть файл" пролет>< < endl;
}