Я хочу написать постоянную строку в текстовый файл. Я знаю, что это можно сделать, используя operator(<<)
put-to operator(<<)
, но я хочу написать эту постоянную строку в блоке данных, введенных через cin
, gets
и т.д. Мне это нужно для моего школьного проекта. Пожалуйста, будьте милы и помогите мне. Если вам непонятно, сообщите мне.
cout<<"Enter your name";
gets(name);
cout<<"Enter your roll number";
cin>>rollno;
char string[]="Student of XYZ School";
fout.write((char*)&student,size(student));
Обратите внимание, что строка символов не может быть записана с другими введенными данными, но я хочу, чтобы она была записана в файл только с другими данными.
Если вы уже сделали #include <iostream>
, как и должно быть, почему вы используете строки gets()
и write()
и C-style? Это было бы намного проще, так как это C++, использовать
#include <fstream>
string name;
string rollno;
ofstream outfile;
cout << "Enter your name";
cin >> name;
cout << "Enter your roll number";
cin >> rollno;
string str = "Student of XYZ School";
student.write(outfile);
Вы не сказали, какой тип "студент". В приведенном выше примере я предполагаю, что это его собственный класс. Если это так, то вы можете определить для него функцию-член
Student::write(ofstream &outfile) {
outfile << "blah blah blah";
// etc.
}
Независимо от того, что вы делаете, НЕ держите get() в своей программе: он оставляет вашу программу открытой для атаки переполнения буфера. Если вы можете использовать cout, вы можете использовать cin.
gets
когда-либо. Это устарело и крайне небезопасно.